SSMS
 sql >> Teknologi Basis Data >  >> Database Tools >> SSMS

Waktu Eksekusi Kueri di Studio Manajemen &profiler. Apa yang diukurnya?

Jika saya memahami pertanyaan Anda dengan benar, pertama-tama Anda mempertanyakan perbedaan antara Durasi yang dilaporkan oleh Profiler dan statistik yang disajikan dalam SSMS (baik di sudut kanan bawah untuk waktu umum dan/atau dengan SET STATISTICS TIME ON). Selain itu, Anda tampaknya tidak yakin dengan komentar DBA produksi bahwa tampilan dijalankan dalam durasi yang diharapkan ~60 detik.

Pertama, dari Books Online, statika yang akan dilaporkan kembali oleh SSMS melalui SET STATISTICS TIME ON:

"Menampilkan jumlah milidetik yang diperlukan untuk mengurai, mengkompilasi, dan mengeksekusi setiap pernyataan."

Anda tepat untuk ini. Adapun Duration di Profiler digambarkan sebagai:

"Durasi (dalam mikrodetik) acara."

Dari tempat saya duduk, keduanya harus secara fungsional setara (dan, seperti yang saya yakin Anda perhatikan, Profiler akan melaporkan dalam mikrodetik jika Anda menentang SQL 2005 atau lebih baru). Saya mengatakan ini karena "acara" dalam kasus ini (mengenai Durasi di Profiler) adalah eksekusi pilih, yang mencakup pengiriman ke klien; ini konsisten dalam kedua kasus.

Tampaknya Anda menduga bahwa geografi adalah penyebab durasi yang lama saat menjalankan kueri dari jarak jauh. Ini sangat mungkin. Anda dapat mengujinya dengan mengeksekusi pilih pada tampilan di satu jendela kueri lalu memunculkan jendela kueri lain dan meninjau jenis tunggu pada kueri:

select
    a.session_id
    ,a.start_time
    ,a.status
    ,a.command
    ,db_name(a.database_id) as database_name
    ,a.blocking_session_id
    ,a.wait_type
    ,a.wait_time
    ,a.cpu_time
    ,a.total_elapsed_time
    ,b.text
from sys.dm_exec_requests a
    cross apply sys.dm_exec_sql_text(a.sql_handle) b
where a.session_id != @@spid;

Saya menduga bahwa Anda akan melihat sesuatu seperti ASYNC_NETWORK_IO sebagai tipe menunggu jika geografi adalah masalahnya - jika tidak, periksa apa yang terjadi. Jika Anda membuat Profil kueri eksekusi jarak jauh Anda, Durasi akan mencerminkan statistik waktu yang Anda lihat di SSMS. NAMUN, jika Anda menggunakan Profiler dan menemukan bahwa durasi kueri ini saat dijalankan dari salah satu server web yang berada di pusat data yang sama dengan SQL Server masih membutuhkan waktu 7 menit, maka DBA adalah pembohong besar dan gemuk :). Saya akan menggunakan Profiler untuk merekam kueri yang memerlukan waktu lebih dari 1 menit, mencoba memfilter untuk tampilan Anda dan mengambil rata-rata untuk melihat apakah kinerja Anda tepat sasaran.

Karena tidak ada jawaban lain yang diposting, saya khawatir bahwa saya jauh dari basis di sini - tetapi sudah terlambat dan saya baru dalam hal ini, jadi saya pikir saya akan mencobanya!



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Intellisense tidak berfungsi di SQL Server 2014

  2. Hasilkan skrip dengan id baru (juga untuk dependensi)

  3. Output XML terpotong dalam SQL

  4. Aplikasi dapat membuka .mdf tanpa file log tetapi Management Studio tidak dapat melampirkan

  5. Mengisi Drop down dengan nilai-nilai dari database di play frame work