Đo thời lượng trong máy chủ sql thực sự đo lường là gì?


8

Điều gì chính xác thời lượng truy vấn đo lường khi tiến hành theo dõi hồ sơ?

Tôi có một quy trình được lưu trữ để thực hiện truy cập dữ liệu (CHỌN) và mất trung bình khoảng 30 giây để trả về kết quả cho ứng dụng. Nhưng khi tôi chạy một dấu vết trên nó, tôi nhận được thời lượng trung bình khoảng 8 giây, thời lượng tối đa 12 giây, CPU trung bình 5,5 giây.

Điều gì có thể khiến nó mất nhiều thời gian hơn để trả về tập kết quả? Tôi không tích lũy chờ đợi NETWORKIO lớn. Tập kết quả chỉ có khoảng 270 hàng dữ liệu văn bản đơn giản, tổng cộng khoảng 50 cột.


4
Điều này không bao gồm thời gian thực hiện để phân phối và hiển thị kết quả trên máy khách.
Aaron Bertrand

Điều đó có ý nghĩa, nhưng nếu có độ trễ lớn (gấp 3 lần thời gian thực hiện để có kết quả được hiển thị) thì bạn có mong đợi thấy NETWORKIO lớn đang chờ không? Lần khởi động lại cuối cùng của tôi chỉ là ngày hôm qua, với NETWORKIO đợi tổng cộng 230 giây (dường như không có gì nhiều trong một ngày đối với tôi).
sqlbattsman

3
Bạn đã thử thực hiện lệnh với SET STATISTICS TIME, v.v.? Ngoài ra nếu thời gian được kết xuất, bạn sẽ không thấy điều đó trong mạng. Bất kỳ sự khác biệt nào được hiển thị nếu bạn kết xuất tất cả dữ liệu đó trong kết quả thành văn bản so với lưới?
Aaron Bertrand

Kết quả cho văn bản không khác biệt đáng kể. Bây giờ khi tôi chạy nó với THỐNG KÊ THỜI GIAN, tổng thời lượng tôi nhận được chính xác hơn nhiều
sqlbattsman

Câu trả lời:


1

Thời lượng biểu thị tổng thời gian từ khi bắt đầu đến khi kết thúc yêu cầu của SQL Server, đại diện cho thời gian gửi qua mạng, thời gian cpu, chờ đợi và thực thi. Như Aaron đã đề cập khi máy khách nhận được dữ liệu, SQL Server đã kết thúc thời gian và máy khách đang xử lý. Đây không phải là một phần của thời gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.