Aracılığıyla paylaş


sys.dm_exec_query_stats (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

SQL Server'da önbelleğe alınmış sorgu planları için toplam performans istatistiklerini döndürür. Görünüm, önbelleğe alınmış plan içindeki sorgu deyimi başına bir satır içerir ve satırların ömrü planın kendisine bağlıdır. Önbellekten bir plan kaldırıldığında, ilgili satırlar bu görünümden kaldırılır.

sys.dm_exec_query_stats sonuçları her yürütmeye göre farklılık gösterebilir; veriler yalnızca tamamlanmış sorguları yansıtır ve hala devam eden sorguları yansıtmaz.

Bu DMV'yi Azure Synapse Analytics veya Analytics Platform Sistemi'ndeki (PDW) ayrılmış bir SQL havuzundan çağırmak için sys.dm_pdw_nodes_exec_query_statsadını kullanın. Sunucusuz SQL havuzu için sys.dm_exec_query_statskullanın.

Sütun adı Veri tipi Açıklama
sql_handle varbinary(64) Sorgunun parçası olduğu toplu işlemi veya saklı yordamı benzersiz olarak tanımlayan belirteç.

sql_handle, statement_start_offset ve statement_end_offsetile birlikte, sys.dm_exec_sql_text dinamik yönetim işlevi çağrılarak sorgunun SQL metnini almak için kullanılabilir.
statement_start_offset int 0 ile başlayan bayt cinsinden, satırın toplu iş veya kalıcı nesnesinin metni içinde tanımladığı sorgunun başlangıç konumunu gösterir.
statement_end_offset int 0 ile başlayan bayt cinsinden, satırın toplu iş veya kalıcı nesnesinin metni içinde tanımladığı sorgunun bitiş konumunu gösterir. SQL Server 2014 (12.x) öncesi sürümler için -1 değeri toplu işlemin sonunu gösterir. Sondaki açıklamalar artık dahil değildir.
plan_generation_num bigint Yeniden derlemeden sonra plan örneklerini ayırt etmek için kullanılabilecek bir sıra numarası.
plan_handle varbinary(64) Yürütülen ve planı plan önbelleğinde bulunan veya şu anda yürütülmekte olan bir toplu iş için sorgu yürütme planını benzersiz olarak tanımlayan belirteç. Bu değer, sorgu planını almak için sys.dm_exec_query_plan dinamik yönetim işlevine geçirilebilir.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0x000.
creation_time datetime Planın derlendiği zaman. Saat, geçerli saat dilimikaydedilir.
last_execution_time datetime Planın yürütmeye başladığı son zaman. Saat, geçerli saat dilimikaydedilir.
execution_count bigint Planın en son derlendiğinden bu yana kaç kez yürütüldüğünü gösterir.
total_worker_time bigint Derlendiğinden beri bu planın yürütmeleri tarafından tüketilen, mikrosaniye cinsinden bildirilen toplam CPU süresi (ancak yalnızca milisaniye cinsinden doğru).

Yerel olarak derlenmiş saklı yordamlar için, birçok yürütme 1 milisaniyeden kısa sürerse total_worker_time doğru olmayabilir.
last_worker_time bigint Planın en son yürütülürken tüketildiği mikrosaniye cinsinden (ancak yalnızca milisaniye cinsinden doğru) CPU süresi. 1
min_worker_time bigint Bu planın tek bir yürütme sırasında tüketildiği mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen en düşük CPU süresi. 1
max_worker_time bigint Bu planın tek bir yürütme sırasında tüketildiği mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen maksimum CPU süresi. 1
total_physical_reads bigint Bu planın derlendiğinden bu yana gerçekleştirilen toplam fiziksel okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
last_physical_reads bigint Plan en son yürütülürken gerçekleştirilen fiziksel okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
min_physical_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en az fiziksel okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
max_physical_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en fazla fiziksel okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
total_logical_writes bigint Bu planın derlendiğinden bu yana gerçekleştirilen toplam mantıksal yazma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
last_logical_writes bigint Planın en son tamamlanan yürütülmesi sırasında kirlenen arabellek havuzu sayfalarının sayısı.

Sayfa okunduktan sonra, sayfa yalnızca ilk değiştirildiğinde kirlenir. Sayfa kirlendiğinde, bu sayı artırılır. Zaten kirli olan bir sayfada yapılan sonraki değişiklikler bu sayıyı etkilemez.
Bellek için iyileştirilmiş bir tablo sorgulandığında bu sayı her zaman 0.
min_logical_writes bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en düşük mantıksal yazma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
max_logical_writes bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en fazla mantıksal yazma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
total_logical_reads bigint Bu planın derlendiğinden bu yana gerçekleştirilen toplam mantıksal okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
last_logical_reads bigint Plan en son yürütülürken gerçekleştirilen mantıksal okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
min_logical_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en az mantıksal okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
max_logical_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en fazla mantıksal okuma sayısı.

Bellek için iyileştirilmiş bir tabloyu sorgularken her zaman 0.
total_clr_time bigint Derlendiğinden beri bu planın yürütülmesiyle Microsoft .NET Framework ortak dil çalışma zamanı (CLR) nesnelerinin içinde tüketilen, mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen süre. CLR nesneleri saklı yordamlar, işlevler, tetikleyiciler, türler ve toplamalar olabilir.
last_clr_time bigint Bu planın son yürütülmesi sırasında .NET Framework CLR nesneleri içinde yürütülerek tüketilen mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen süre. CLR nesneleri saklı yordamlar, işlevler, tetikleyiciler, türler ve toplamalar olabilir.
min_clr_time bigint Bu planın tek bir yürütme sırasında .NET Framework CLR nesnelerinin içinde tüketildiği mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen minimum süre. CLR nesneleri saklı yordamlar, işlevler, tetikleyiciler, türler ve toplamalar olabilir.
max_clr_time bigint Bu planın tek bir yürütme sırasında .NET Framework CLR içinde tüketildiği mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen maksimum süre. CLR nesneleri saklı yordamlar, işlevler, tetikleyiciler, türler ve toplamalar olabilir.
total_elapsed_time bigint Bu planın tamamlanmış yürütmeleri için mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen toplam geçen süre.
last_elapsed_time bigint Bu planın en son tamamlanan yürütülmesi için mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen geçen süre.
min_elapsed_time bigint Bu planın tamamlanmış herhangi bir yürütmesi için mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen minimum geçen süre.
max_elapsed_time bigint Bu planın tamamlanmış bir şekilde yürütülmesi için mikrosaniye cinsinden (ancak yalnızca milisaniyeye doğru) bildirilen en uzun süre.
query_hash İkili (8) Sorguda hesaplanan ve benzer mantığa sahip sorguları tanımlamak için kullanılan ikili karma değeri. Sorgu karması kullanarak yalnızca değişmez değerlerle farklılık gösteren sorguların toplam kaynak kullanımını belirleyebilirsiniz.
query_plan_hash ikili (8) Sorgu yürütme planında hesaplanan ve benzer sorgu yürütme planlarını tanımlamak için kullanılan ikili karma değer. Benzer yürütme planlarına sahip sorguların toplu maliyetini bulmak için sorgu planı karması kullanabilirsiniz.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0x000.
total_rows bigint Sorgu tarafından döndürülen toplam satır sayısı. Null olamaz.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0.
last_rows bigint Sorgunun son yürütmesi tarafından döndürülen satır sayısı. Null olamaz.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0.
min_rows bigint Bir yürütme sırasında sorgu tarafından döndürülen en az satır sayısı. Null olamaz.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0.
max_rows bigint Bir yürütme sırasında sorgu tarafından döndürülen en fazla satır sayısı. Null olamaz.

Yerel olarak derlenmiş saklı yordam bellek için iyileştirilmiş bir tabloyu sorguladığında her zaman 0.
statement_sql_handle varbinary(64) için geçerlidir: SQL Server 2014 (12.x) ve sonraki sürümler.

Null olmayan değerlerle doldurulması için Sorgu Deposu'un açık olması ve söz konusu sorgunun istatistiklerini toplaması gerekir.
statement_context_id bigint için geçerlidir: SQL Server 2014 (12.x) ve sonraki sürümler.

Null olmayan değerlerle doldurulması için Sorgu Deposu'un açık olması ve söz konusu sorgunun istatistiklerini toplaması gerekir.
total_dop bigint Bu planın derlendiğinden beri kullandığı paralellik derecesinin toplam toplamı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_dop bigint Bu plan son kez yürütülürken paralellik derecesi. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_dop bigint Bu planın bir yürütme sırasında kullandığı en düşük paralellik derecesi. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_dop bigint Bu planın bir yürütme sırasında kullandığı en yüksek paralellik derecesi. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_grant_kb bigint Bu plan derlendiğinden bu yana alınan KB cinsinden toplam ayrılmış bellek verme miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_grant_kb bigint Bu plan son kez yürütülürken KB cinsinden ayrılmış bellek verme miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_grant_kb bigint Bu planın bir yürütme sırasında aldığı kb cinsinden ayrılmış bellek miktarı en düşük. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_grant_kb bigint Bu planın tek bir yürütme sırasında aldığı kb cinsinden ayrılmış bellek miktarı üst sınırı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_used_grant_kb bigint Bu plan derlendiğinden bu yana kullanılan KB cinsinden toplam ayrılmış bellek izni miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_used_grant_kb bigint Bu plan son kez yürütülürken KB cinsinden kullanılan bellek verme miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_used_grant_kb bigint Bir yürütme sırasında bu plan için kb cinsinden kullanılan en düşük bellek miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_used_grant_kb bigint Bir yürütme sırasında bu plan için kb cinsinden en fazla kullanılan bellek miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_ideal_grant_kb bigint Bu plan derlendiğinden bu yana tahmini OLARAK KB cinsinden toplam ideal bellek miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_ideal_grant_kb bigint Bu plan son kez yürütülürken KB cinsinden ideal bellek verme miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_ideal_grant_kb bigint Bu planın bir yürütme sırasında tahmin edilen KB cinsinden en düşük ideal bellek miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_ideal_grant_kb bigint Bu planın bir yürütme sırasında tahmin edilen KB cinsinden en yüksek ideal bellek miktarı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_reserved_threads bigint Bu planın derlendiğinden beri kullandığı ayrılmış paralel iş parçacıklarının toplam toplamı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_reserved_threads bigint Bu plan son kez yürütülürken ayrılmış paralel iş parçacıklarının sayısı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_reserved_threads bigint Bu planın bir yürütme sırasında kullandığı en az ayrılmış paralel iş parçacığı sayısı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_reserved_threads bigint Bu planın bir yürütme sırasında şimdiye kadar kullandığı ayrılmış paralel iş parçacığı sayısı üst sınırı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_used_threads bigint Bu plan derlendiğinden beri kullanılan paralel iş parçacıklarının toplam toplamı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
last_used_threads bigint Bu plan son kez yürütülürken kullanılan paralel iş parçacıklarının sayısı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
min_used_threads bigint Bu planın bir yürütme sırasında kullandığı en az kullanılan paralel iş parçacığı sayısı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
max_used_threads bigint Bu planın bir yürütme sırasında şimdiye kadar kullanılan en fazla paralel iş parçacığı sayısı. Bellek için iyileştirilmiş bir tabloyu sorgulamak için her zaman 0.

için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
total_columnstore_segment_reads bigint Sorgu tarafından okunan columnstore segmentlerinin toplam toplamı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
last_columnstore_segment_reads bigint Sorgunun son yürütmesi tarafından okunan columnstore segmentlerinin sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
min_columnstore_segment_reads bigint Bir yürütme sırasında sorgu tarafından okunan en az columnstore segmenti sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
max_columnstore_segment_reads bigint Bir yürütme sırasında sorgu tarafından okunan en fazla columnstore segment sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
total_columnstore_segment_skips bigint Sorgu tarafından atlanan columnstore segmentlerinin toplam toplamı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
last_columnstore_segment_skips bigint Sorgunun son yürütülmesiyle atlanan columnstore segmentlerinin sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
min_columnstore_segment_skips bigint Bir yürütme sırasında sorgu tarafından atlanan en az columnstore segmenti sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
max_columnstore_segment_skips bigint Bir yürütme sırasında sorgu tarafından atlanan en fazla columnstore segment sayısı. Null olamaz.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
total_spills bigint Bu sorgu derlendiğinden bu yana yürütülerek dökülen toplam sayfa sayısı.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
last_spills bigint Sorgunun son yürütüldüğü zaman dökülen sayfa sayısı.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
min_spills bigint Bu sorgunun tek bir yürütme sırasında taşan en az sayfa sayısı.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
max_spills bigint Bu sorgunun tek bir yürütme sırasında taşan en fazla sayfa sayısı.

için geçerlidir: SQL Server 2016 (13.x) SP2 ve SQL Server 2017 (14.x) CU3 ile başlayarak
pdw_node_id int Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.

için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)
total_page_server_reads bigint Bu planın derlendiğinden bu yana gerçekleştirilen yürütmeleri tarafından gerçekleştirilen uzak sayfa sunucusu okumalarının toplam sayısı.

Şunlar için geçerlidir: Azure SQL Veritabanı Hiper Ölçeğini
last_page_server_reads bigint Plan en son yürütülürken gerçekleştirilen uzak sayfa sunucusu okuma sayısı.

Şunlar için geçerlidir: Azure SQL Veritabanı Hiper Ölçeğini
min_page_server_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en az uzak sayfa sunucusu okuma sayısı.

Şunlar için geçerlidir: Azure SQL Veritabanı Hiper Ölçeğini
max_page_server_reads bigint Bu planın tek bir yürütme sırasında gerçekleştirdiği en fazla uzak sayfa sunucusu okuma sayısı.

Şunlar için geçerlidir: Azure SQL Veritabanı Hiper Ölçeğini

Not

1 İstatistik toplama etkinleştirildiğinde yerel olarak derlenmiş saklı yordamlar için çalışan süresi milisaniye cinsinden toplanır. Sorgu bir milisaniyeden kısa bir sürede yürütülürse, değeri 0olur.

İzinler

SQL Server 2019 (15.x) ve önceki sürümleri ve Azure SQL Yönetilen Örneği, VIEW SERVER STATE izin gerektirir.

SQL Server 2022 (16.x) ve sonraki sürümleri sunucuda VIEW SERVER PERFORMANCE STATE izin gerektirir.

Azure SQL Veritabanı Temel,S0ve S1 hizmet hedeflerini ve elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya sunucu rolü üyeliği gerekir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.

Açıklamalar

Bir sorgu tamamlandığında görünümdeki istatistikler güncelleştirilir.

Örnekler

A. TOP N sorgularını bulma

Aşağıdaki örnek, ortalama CPU süresine göre sıralanan ilk beş sorgu hakkında bilgi döndürür. Bu örnek sorguları sorgu karmalarına göre toplayarak mantıksal olarak eşdeğer sorguların birikmeli kaynak tüketimine göre gruplandırılmış olmasını sağlar. Sample_Statement_Text sütunu, sorgu karmasıyla eşleşen sorgu yapısının bir örneğini gösterir, ancak deyimindeki belirli değerler dikkate alınmadan okunmalıdır. Örneğin, bir deyim WHERE Id = 5içeriyorsa, bunu daha genel bir biçimde okuyabilirsiniz: 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. Sorgu için satır sayısı toplamlarını döndürme

Aşağıdaki örnek sorgular için satır sayısı toplama bilgilerini (toplam satır sayısı, en küçük satırlar, en yüksek satırlar ve son satırlar) döndürür.

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;