Tại sao sp_reset_connection
quy trình lưu trữ hệ thống sẽ mất nhiều thời gian hơn vài mili giây để thực thi, như được xem qua SQL Server Profiler?
Tôi đã lấy một dấu vết đơn giản từ một hệ thống sản xuất bằng SQL Server Profiler và sau đó sử dụng SqlNexus để phân tích nó. SqlNexus chỉ ra rằng sp_reset_connection có thời lượng tích lũy cao nhất - 33% của dấu vết tổng thể. Thời lượng quan sát dao động từ 0-7 giây (12 đến 6.833.270 micro giây) nhưng trung bình là 0,956 giây.
Tôi hiểu rằng sp_reset_connection đang được gọi khi kết nối gộp được sử dụng lại. Tôi đã thấy một đề nghị rằng điều này có thể xảy ra do dấu vết bên ngoài , nhưng dường như đó không phải là trường hợp.
Tôi đã đọc những gì máy chủ đang làm khi sproc được gọi nhưng tôi không tin bất kỳ ai trong số đó sẽ gặp vấn đề trong trường hợp này - mã không để lại giao dịch mở hoặc các bảng tạm thời lớn cần được dọn sạch.
Tôi cũng đã xem /server/199974/sp-reset-connection-taking-a-long-time-to-run nhưng nó không hữu ích.
EDIT (2013-12-23): Trong mọi trường hợp, đọc và ghi là 0 và CPU hầu như luôn là 0 (chỉ có hai trường hợp CPU khác không, cả hai đều ở mức 16ms).
RPC:Starting
, RPC:Completed
và chờ đợi các loại trong một thời gian ngắn sau đó xem xét thông qua các dữ liệu để xem những gì chờ đợi loại các spids đang gặp phải trong thời gian đó.