sys.dm_exec_query_stats (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan statistik performa agregat untuk rencana kueri yang di-cache di SQL Server. Tampilan berisi satu baris per pernyataan kueri dalam paket yang di-cache, dan masa pakai baris terikat dengan rencana itu sendiri. Saat paket dihapus dari cache, baris terkait dihilangkan dari tampilan ini.

Catatan

  • Hasil sys.dm_exec_query_stats dapat bervariasi menurut setiap eksekusi karena data hanya mencerminkan kueri yang sudah selesai, dan bukan yang masih dalam penerbangan.
  • Untuk memanggil ini dari kumpulan SQL khusus di Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_exec_query_stats. Untuk kumpulan SQL tanpa server, gunakan sys.dm_exec_query_stats.
Nama kolom Jenis data Deskripsi
sql_handle varbinary(64) Adalah token yang secara unik mengidentifikasi prosedur batch atau tersimpan yang menjadi bagian kueri.

sql_handle, bersama dengan statement_start_offset dan statement_end_offset, dapat digunakan untuk mengambil teks SQL kueri dengan memanggil fungsi manajemen dinamis sys.dm_exec_sql_text.
statement_start_offset int Menunjukkan, dalam byte, dimulai dengan 0, posisi awal kueri yang dijelaskan baris dalam teks batch atau objek yang dipertahankan.
statement_end_offset int Menunjukkan, dalam byte, dimulai dengan 0, posisi akhir kueri yang dijelaskan baris dalam teks batch atau objek yang dipertahankan. Untuk versi sebelum SQL Server 2014 (12.x), nilai -1 menunjukkan akhir batch. Komentar berikutnya tidak lagi disertakan.
plan_generation_num bigint Nomor urut yang dapat digunakan untuk membedakan antara instans rencana setelah kompilasi ulang.
plan_handle varbinary(64) Adalah token yang secara unik mengidentifikasi rencana eksekusi kueri untuk batch yang telah dijalankan dan rencananya berada di cache rencana, atau saat ini sedang dijalankan. Nilai ini dapat diteruskan ke fungsi manajemen dinamis sys.dm_exec_query_plan untuk mendapatkan rencana kueri.

Akan selalu 0x000 ketika prosedur tersimpan yang dikompilasi secara asli meminta tabel yang dioptimalkan memori.
creation_time datetime Waktu di mana rencana dikompilasi.
last_execution_time datetime Terakhir kali di mana rencana mulai dijalankan.
execution_count bigint Berapa kali rencana telah dijalankan sejak terakhir kali dikompilasi.
total_worker_time bigint Jumlah total waktu CPU, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), yang dikonsumsi oleh eksekusi rencana ini sejak dikompilasi.

Untuk prosedur tersimpan yang dikompilasi secara asli, total_worker_time mungkin tidak akurat jika banyak eksekusi membutuhkan waktu kurang dari 1 milidetik.
last_worker_time bigint Waktu CPU, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), yang dikonsumsi terakhir kali rencana dijalankan. 1
min_worker_time bigint Waktu CPU minimum, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), bahwa rencana ini pernah dikonsumsi selama satu eksekusi. 1
max_worker_time bigint Waktu CPU maksimum, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), bahwa rencana ini pernah dikonsumsi selama satu eksekusi. 1
total_physical_reads bigint Jumlah total bacaan fisik yang dilakukan oleh eksekusi rencana ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_physical_reads bigint Jumlah bacaan fisik yang dilakukan terakhir kali rencana dijalankan.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
min_physical_reads bigint Jumlah minimum bacaan fisik yang pernah dilakukan rencana ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_physical_reads bigint Jumlah maksimum bacaan fisik yang pernah dilakukan rencana ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_logical_writes bigint Jumlah total penulisan logis yang dilakukan oleh eksekusi rencana ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_logical_writes bigint Jumlah halaman kumpulan buffer yang dikoreksi selama eksekusi paket yang terakhir selesai.

Setelah halaman dibaca, halaman menjadi kotor hanya saat pertama kali dimodifikasi. Ketika halaman menjadi kotor, angka ini akan bertahas. Modifikasi berikutnya dari halaman yang sudah kotor tidak memengaruhi nomor ini.

Angka ini akan selalu 0 saat mengkueri tabel yang dioptimalkan memori.
min_logical_writes bigint Jumlah minimum penulisan logis yang pernah dilakukan rencana ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_logical_writes bigint Jumlah maksimum penulisan logis yang pernah dilakukan rencana ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_logical_reads bigint Jumlah total bacaan logis yang dilakukan oleh eksekusi rencana ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_logical_reads bigint Jumlah pembacaan logis yang dilakukan terakhir kali paket dijalankan.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
min_logical_reads bigint Jumlah minimum bacaan logis yang pernah dilakukan rencana ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_logical_reads bigint Jumlah maksimum pembacaan logis yang pernah dilakukan paket ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_clr_time bigint Waktu, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), dikonsumsi di dalam objek microsoft .NET Framework common language runtime (CLR) oleh eksekusi rencana ini sejak dikompilasi. Objek CLR dapat disimpan prosedur, fungsi, pemicu, jenis, dan agregat.
last_clr_time bigint Waktu, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik) yang dikonsumsi oleh eksekusi di dalam objek CLR .NET Framework selama eksekusi terakhir rencana ini. Objek CLR dapat disimpan prosedur, fungsi, pemicu, jenis, dan agregat.
min_clr_time bigint Waktu minimum, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), bahwa rencana ini pernah dikonsumsi di dalam objek CLR .NET Framework selama satu eksekusi. Objek CLR dapat disimpan prosedur, fungsi, pemicu, jenis, dan agregat.
max_clr_time bigint Waktu maksimum, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), bahwa rencana ini pernah digunakan di dalam .NET Framework CLR selama satu eksekusi. Objek CLR dapat disimpan prosedur, fungsi, pemicu, jenis, dan agregat.
total_elapsed_time bigint Total waktu yang berlalu, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), untuk eksekusi yang selesai dari rencana ini.
last_elapsed_time bigint Waktu yang berlalu, dilaporkan dalam mikro detik (tetapi hanya akurat hingga milidetik), untuk eksekusi rencana ini yang baru saja selesai.
min_elapsed_time bigint Waktu minimum yang berlalu, dilaporkan dalam mikrostik (tetapi hanya akurat hingga milidetik), untuk setiap eksekusi yang selesai dari rencana ini.
max_elapsed_time bigint Waktu maksimum yang berlalu, dilaporkan dalam mikrostik (tetapi hanya akurat hingga milidetik), untuk setiap eksekusi yang selesai dari rencana ini.
query_hash Biner(8) Nilai hash biner dihitung pada kueri dan digunakan untuk mengidentifikasi kueri dengan logika serupa. Anda bisa menggunakan hash kueri untuk menentukan penggunaan sumber daya agregat untuk kueri yang hanya berbeda dengan nilai harfiah.
query_plan_hash biner(8) Nilai hash biner dihitung pada rencana eksekusi kueri dan digunakan untuk mengidentifikasi rencana eksekusi kueri serupa. Anda dapat menggunakan hash rencana kueri untuk menemukan biaya kumulatif kueri dengan rencana eksekusi serupa.

Akan selalu 0x000 ketika prosedur tersimpan yang dikompilasi secara asli meminta tabel yang dioptimalkan memori.
total_rows bigint Jumlah total baris yang dikembalikan oleh kueri. Tidak boleh null.

Akan selalu 0 ketika prosedur tersimpan yang dikompilasi secara asli mengkueri tabel yang dioptimalkan memori.
last_rows bigint Jumlah baris yang dikembalikan oleh eksekusi terakhir kueri. Tidak boleh null.

Akan selalu 0 ketika prosedur tersimpan yang dikompilasi secara asli mengkueri tabel yang dioptimalkan memori.
min_rows bigint Jumlah minimum baris yang pernah dikembalikan oleh kueri selama satu eksekusi. Tidak boleh null.

Akan selalu 0 ketika prosedur tersimpan yang dikompilasi secara asli mengkueri tabel yang dioptimalkan memori.
max_rows bigint Jumlah maksimum baris yang pernah dikembalikan oleh kueri selama satu eksekusi. Tidak boleh null.

Akan selalu 0 ketika prosedur tersimpan yang dikompilasi secara asli mengkueri tabel yang dioptimalkan memori.
statement_sql_handle varbinary(64) Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Diisi dengan nilai non-NULL hanya jika Penyimpanan Kueri diaktifkan dan mengumpulkan statistik untuk kueri tertentu tersebut.
statement_context_id bigint Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Diisi dengan nilai non-NULL hanya jika Penyimpanan Kueri diaktifkan dan mengumpulkan statistik untuk kueri tertentu tersebut.
total_dop bigint Jumlah total tingkat paralelisme yang digunakan rencana ini sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_dop bigint Tingkat paralelisme ketika rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_dop bigint Tingkat paralelisme minimum yang pernah digunakan rencana ini selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_dop bigint Tingkat paralelisme maksimum yang pernah digunakan rencana ini selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_grant_kb bigint Jumlah total pemberian memori yang dipesan dalam KB rencana ini diterima sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_grant_kb bigint Jumlah pemberian memori yang dipesan dalam KB ketika rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_grant_kb bigint Jumlah minimum pemberian memori yang dipesan dalam KB rencana ini pernah diterima selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_grant_kb bigint Jumlah maksimum pemberian memori yang dipesan dalam KB rencana ini pernah diterima selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_used_grant_kb bigint Jumlah total pemberian memori yang dipesan dalam KB rencana ini digunakan sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_used_grant_kb bigint Jumlah pemberian memori yang digunakan dalam KB ketika rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_used_grant_kb bigint Jumlah minimum pemberian memori yang digunakan dalam KB paket ini yang pernah digunakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_used_grant_kb bigint Jumlah maksimum pemberian memori yang digunakan dalam KB rencana ini yang pernah digunakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_ideal_grant_kb bigint Jumlah total pemberian memori ideal dalam KB rencana ini diperkirakan sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_ideal_grant_kb bigint Jumlah pemberian memori ideal dalam KB ketika rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_ideal_grant_kb bigint Jumlah minimum pemberian memori ideal dalam KB rencana ini pernah diperkirakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_ideal_grant_kb bigint Jumlah maksimum pemberian memori ideal dalam KB rencana ini pernah diperkirakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_reserved_threads bigint Jumlah total utas paralel cadangan yang pernah digunakan rencana ini sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_reserved_threads bigint Jumlah utas paralel yang dipesan ketika rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_reserved_threads bigint Jumlah minimum utas paralel yang dipesan rencana ini pernah digunakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_reserved_threads bigint Jumlah maksimum utas paralel cadangan yang pernah digunakan rencana ini selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_used_threads bigint Jumlah total utas paralel yang digunakan rencana ini pernah digunakan sejak dikompilasi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
last_used_threads bigint Jumlah utas paralel yang digunakan saat rencana ini dijalankan terakhir kali. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
min_used_threads bigint Jumlah minimum utas paralel yang digunakan rencana ini yang pernah digunakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
max_used_threads bigint Jumlah maksimum utas paralel yang digunakan rencana ini yang pernah digunakan selama satu eksekusi. Ini akan selalu 0 untuk mengkueri tabel yang dioptimalkan memori.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
total_columnstore_segment_reads bigint Jumlah total segmen penyimpan kolom yang dibaca oleh kueri. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
last_columnstore_segment_reads bigint Jumlah segmen penyimpan kolom yang dibaca oleh eksekusi terakhir kueri. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
min_columnstore_segment_reads bigint Jumlah minimum segmen penyimpan kolom yang pernah dibaca oleh kueri selama satu eksekusi. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
max_columnstore_segment_reads bigint Jumlah maksimum segmen penyimpan kolom yang pernah dibaca oleh kueri selama satu eksekusi. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
total_columnstore_segment_skips bigint Jumlah total segmen penyimpan kolom yang dilewati oleh kueri. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
last_columnstore_segment_skips bigint Jumlah segmen penyimpan kolom yang dilewati oleh eksekusi terakhir kueri. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
min_columnstore_segment_skips bigint Jumlah minimum segmen penyimpan kolom yang pernah dilewati oleh kueri selama satu eksekusi. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
max_columnstore_segment_skips bigint Jumlah maksimum segmen penyimpan kolom yang pernah dilewati oleh kueri selama satu eksekusi. Tidak boleh null.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
total_spills bigint Jumlah total halaman yang ditumpahkan oleh eksekusi kueri ini sejak dikompilasi.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
last_spills bigint Jumlah halaman yang ditumpahkan terakhir kali kueri dijalankan.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
min_spills bigint Jumlah minimum halaman yang pernah ditumpahkan kueri ini selama satu eksekusi.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
max_spills bigint Jumlah maksimum halaman yang pernah ditumpahkan kueri ini selama satu eksekusi.

Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3
pdw_node_id int Pengidentifikasi untuk simpul tempat distribusi ini aktif.

Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)
total_page_server_reads bigint Jumlah total pembacaan server halaman jarak jauh yang dilakukan oleh eksekusi rencana ini sejak dikompilasi.

Berlaku untuk: Azure SQL Database Hyperscale
last_page_server_reads bigint Jumlah pembacaan server halaman jarak jauh yang dilakukan terakhir kali paket dijalankan.

Berlaku Untuk: Azure SQL Database Hyperscale
min_page_server_reads bigint Jumlah minimum server halaman jarak jauh membaca bahwa paket ini pernah dilakukan selama satu eksekusi.

Berlaku Untuk: Azure SQL Database Hyperscale
max_page_server_reads bigint Jumlah maksimum server halaman jarak jauh membaca bahwa rencana ini pernah dilakukan selama satu eksekusi.

Berlaku Untuk: Azure SQL Database Hyperscale

Catatan

1 Untuk prosedur tersimpan yang dikompilasi secara asli saat pengumpulan statistik diaktifkan, waktu pekerja dikumpulkan dalam milidetik. Jika kueri dijalankan dalam waktu kurang dari satu milidetik, nilainya akan menjadi 0.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Keterangan

Statistik dalam tampilan diperbarui saat kueri selesai.

Contoh

J. Menemukan kueri N TERATAS

Contoh berikut mengembalikan informasi tentang lima kueri teratas yang diberi pangkat berdasarkan waktu CPU rata-rata. Contoh ini menggabungkan kueri sesuai dengan hash kuerinya sehingga kueri yang setara secara logis dikelompokkan berdasarkan konsumsi sumber daya kumulatifnya. Kolom Sample_Statement_Text memperlihatkan contoh struktur kueri yang cocok dengan hash kueri, tetapi harus dibaca tanpa memperhatikan nilai tertentu dalam pernyataan. Misalnya, jika pernyataan berisi WHERE Id = 5, Anda dapat membacanya dalam bentuk yang lebih umum: WHERE Id = @some_value

SELECT TOP 5 query_stats.query_hash AS Query_Hash,   
    SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS Avg_CPU_Time,  
    MIN(query_stats.statement_text) AS Sample_Statement_Text
FROM   
    (SELECT QS.*,   
    SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,  
    ((CASE statement_end_offset   
        WHEN -1 THEN DATALENGTH(ST.text)  
        ELSE QS.statement_end_offset END   
            - QS.statement_start_offset)/2) + 1) AS statement_text  
     FROM sys.dm_exec_query_stats AS QS  
     CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats  
GROUP BY query_stats.query_hash  
ORDER BY 2 DESC;  

B. Mengembalikan agregat jumlah baris untuk kueri

Contoh berikut mengembalikan informasi agregat jumlah baris (baris total, baris minimum, baris maksimum, dan baris terakhir) untuk kueri.

SELECT qs.execution_count,  
    SUBSTRING(qt.text,qs.statement_start_offset/2 +1,   
                 (CASE WHEN qs.statement_end_offset = -1   
                       THEN LEN(CONVERT(nvarchar(max), qt.text)) * 2   
                       ELSE qs.statement_end_offset end -  
                            qs.statement_start_offset  
                 )/2  
             ) AS query_text,   
     qt.dbid, dbname= DB_NAME (qt.dbid), qt.objectid,   
     qs.total_rows, qs.last_rows, qs.min_rows, qs.max_rows  
FROM sys.dm_exec_query_stats AS qs   
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt   
WHERE qt.text like '%SELECT%'   
ORDER BY qs.execution_count DESC;  

Baca juga

Tampilan dan Fungsi Manajemen Dinamis Terkait Eksekusi (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (T-SQL)
sys.dm_exec_procedure_stats (T-SQL)
sys.dm_exec_trigger_stats (T-SQL)
sys.dm_exec_cached_plans (T-SQL)