Apa pengukuran durasi di sql server sebenarnya mengukur?

8

Apa yang diukur oleh durasi durasi kueri saat melakukan penelusuran profiler?

Saya memiliki prosedur tersimpan yang melakukan akses data (SELECT), dan butuh rata-rata sekitar 30 detik untuk mengembalikan hasil ke aplikasi. Tetapi ketika saya menjalankan jejak di atasnya saya mendapatkan durasi rata-rata sekitar 8 detik, durasi maksimum 12 detik, rata-rata CPU 5,5 detik.

Apa yang menyebabkannya membutuhkan waktu lebih lama untuk mengembalikan set hasil? Saya tidak mengumpulkan menunggu NETWORKIO besar. Kumpulan hasil hanya sekitar 270 baris data teks sederhana, sekitar 50 kolom total.

sqlbattsman
sumber
4
Ini tidak termasuk waktu yang diperlukan untuk mengirim dan memberikan hasil pada klien.
Aaron Bertrand
Itu masuk akal, tetapi jika ada penundaan besar (3x waktu eksekusi untuk mendapatkan hasil yang diberikan) tidakkah Anda berharap untuk melihat NETWORKIO besar menunggu? Restart terakhir saya baru kemarin, dengan NETWORKIO menunggu total 230 detik (sepertinya tidak banyak untuk satu hari bagi saya).
sqlbattsman
3
Apakah Anda mencoba menjalankan perintah dengan SET STATISTICS TIME dll? Juga jika waktu yang dihabiskan untuk rendering Anda tidak akan melihatnya di jaringan. Adakah perbedaan yang ditampilkan jika Anda merender semua data dalam hasil ke teks vs kisi?
Aaron Bertrand
Hasil ke teks tidak berbeda nyata. Sekarang ketika saya menjalankannya dengan SET STATISTICS TIME, total durasi yang saya dapatkan jauh lebih akurat
sqlbattsman

Jawaban:

1

Durasi mewakili total waktu dari awal hingga akhir permintaan oleh SQL Server, yang mewakili waktu untuk mengirim melalui jaringan, waktu cpu, menunggu, dan eksekusi. Seperti yang disebutkan Aaron setelah klien menerima data SQL Server telah menyelesaikan waktunya, dan klien kemudian memproses. Ini seharusnya tidak menjadi bagian dari durasi.

SheldonH
sumber