Mengapa sp_reset_connection
prosedur yang disimpan sistem membutuhkan waktu lebih dari beberapa milidetik untuk dijalankan, seperti yang dilihat melalui SQL Server Profiler?
Saya mengambil jejak sederhana dari sistem produksi menggunakan SQL Server Profiler dan kemudian menggunakan SqlNexus untuk menganalisisnya. SqlNexus menunjukkan bahwa sp_reset_connection memiliki durasi kumulatif tertinggi - 33% dari keseluruhan jejak. Durasi yang diamati berkisar antara 0-7 detik (12 hingga 6.833.270 mikrodetik) tetapi rata-rata pada 0,956s.
Saya mengerti bahwa sp_reset_connection dipanggil ketika koneksi yang dikumpulkan digunakan kembali. Saya telah melihat saran bahwa ini bisa terjadi karena jejak yang asing , tetapi sepertinya tidak demikian.
Saya telah membaca apa yang dilakukan server ketika sproc dipanggil tetapi saya tidak percaya ada yang bermasalah dalam kasus ini - kode tidak meninggalkan transaksi terbuka atau tabel sementara besar yang perlu dibersihkan.
Saya juga melihat /server/199974/sp-reset-connection-taking-a-long-time-to-run tetapi itu tidak membantu.
EDIT (2013-12-23): Dalam semua kasus, baca dan tulis adalah 0 dan CPU hampir selalu 0 (hanya dua contoh CPU non-nol, keduanya pada 16ms).
RPC:Starting
, RPC:Completed
dan menunggu jenis untuk periode singkat kemudian melihat melalui data untuk melihat jenis menunggu apa yang dihadapi spid selama waktu itu.