sys.dm_exec_query_stats (Transact-sql)

Önbelleğe alınan sorgu planlarını toplam performans istatistiklerini verir SQL Server 2012. Görünüm sorgu deyimi önbelleğe alınan planı içinde başına bir satır içerir ve satırları ömrü plana bağlı. Bir planı önbellekten çıkarıldığında, buna karşılık gelen satırların bu görünümden ortadan kalkar.

[!NOT]

Bir başlangıç sorgusu sys.dm_exec_query_stats sunucuda yürütülmekte iş yükünü ise yanlış sonuçlar doğurabilir. Daha doğru sonuçlar, sorguyu çalıştırarak belirlenebilir.

Sütun adı

Veri türü

Açıklama

sql_handle

varbinary(64)

Toplu iş için başvuran veya sorgu parçası olan yordamı depolanan bir belirteç olur.

sql_handle, birlikte statement_start_offset ve statement_end_offset, sorguyu sql metnini çağırarak almak için kullanılan sys.dm_exec_sql_text dinamik yönetimi işlevi.

statement_start_offset

int

, Bayt, 0 ile başlayan, kendi toplu iş veya kalıcı nesne içindeki metni satır açıklar sorgu başlangıç konumunu gösterir.

statement_end_offset

int

, Bayt, 0 ile başlayan, kendi toplu iş veya kalıcı nesne içindeki metni satır açıklar sorgu bitiş konumunu gösterir. -1 Değeri, sonunda toplu gösterir.

plan_generation_num

bigint

Recompile sonra planları örnekleri arasında ayırt etmek için kullanılan bir sıra numarası.

plan_handle

varbinary(64)

Sorgu bir parçası olan derlenmiş planı için başvuran bir belirteç. Bu değer geçirilebilir sys.dm_exec_query_plan sorgu planı almak için dinamik yönetimi işlevi.

creation_time

datetime

Hangi plan derlenen zaman.

last_execution_time

datetime

Son kez hangi planı yürütme başladı.

execution_count

bigint

Planın bu yana yürütülen kaç kez son derlendi.

total_worker_time

bigint

Toplam cpu süresini, (ama sadece doğru milisaniye) bu derlenmiş beri bu planı yürütmeler tarafından tüketilen mikrosaniye cinsinden bildirdi.

last_worker_time

bigint

cpu süresi (ama sadece doğru milisaniye), son kez plan yürütülen tüketilen mikrosaniye cinsinden bildirdi.

min_worker_time

bigint

En az cpu süre rapor mikrosaniye (ama sadece doğru milisaniye)-Bu plan şimdiye kadar tek bir yürütme sırasında tüketilen.

max_worker_time

bigint

En fazla cpu süresi, bu plan şimdiye kadar tek bir yürütme sırasında tüketilen mikrosaniye (ama sadece doğru milisaniye) bildirdi.

total_physical_reads

bigint

Fiziksel okuma, derlenmiş beri bu planı yürütmeler tarafından gerçekleştirilen toplam sayısı.

last_physical_reads

bigint

Fiziksel okuma sayısı, son kez plan yürütülen gerçekleştirilen.

min_physical_reads

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü fiziksel okuma en az sayıda.

max_physical_reads

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü fiziksel okuma en fazla sayısı.

total_logical_writes

bigint

Bu derlenmiş beri bu planı yürütmeler tarafından gerçekleştirilen mantıksal yazma sayısı.

last_logical_writes

bigint

Mantıksal yazma sayısı, son kez plan yürütülen gerçekleştirilen.

min_logical_writes

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü mantıksal yazma en az sayıda.

max_logical_writes

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü mantıksal yazma sayısı üst sınırı.

total_logical_reads

bigint

Bu derlenmiş beri bu planı yürütmeler tarafından gerçekleştirilen mantıksal okuma sayısı.

last_logical_reads

bigint

Mantıksal okuma sayısı, son kez plan yürütülen gerçekleştirilen.

min_logical_reads

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü mantıksal okuma en az sayıda.

max_logical_reads

bigint

Bu plan, tek bir yürütme sırasında her zamankinden yürüttü mantıksal okuma en fazla sayısı.

total_clr_time

bigint

Zaman içinde tüketilen mikrosaniye (ama sadece doğru milisaniye), rapor, Microsoft  .NET Frameworkortak dil çalışma zamanı (clr) nesneleri bu planı yürütmeler tarafından derlenen onu bu yana. clr nesneleri, saklı yordamları, işlevleri, Tetikleyiciler, türleri ve toplamları olabilir.

last_clr_time

bigint

Rapor yürütme içinde tüketilen mikrosaniye (ama sadece doğru milisaniye) Zaman, .NET Frameworkclr nesneleri bu planı son yürütülmesi sırasında. clr nesneleri, saklı yordamları, işlevleri, Tetikleyiciler, türleri ve toplamları olabilir.

min_clr_time

bigint

En az süre bildirilen bu plan şimdiye kadar içinde tüketilen mikrosaniye (ama sadece doğru milisaniye), .NET Frameworkclr nesneleri tek bir yürütme sırasında. clr nesneleri, saklı yordamları, işlevleri, Tetikleyiciler, türleri ve toplamları olabilir.

max_clr_time

bigint

En uzun süreyi bildirilen bu plan şimdiye kadar içinde tüketilen mikrosaniye (ama sadece doğru milisaniye), .NET Frameworktek bir yürütme sırasında clr. clr nesneleri, saklı yordamları, işlevleri, Tetikleyiciler, türleri ve toplamları olabilir.

total_elapsed_time

bigint

Toplam geçen mikrosaniye (ama sadece doğru milisaniye), bu planı tamamlanmış yürütmeler için bildirilen süre.

last_elapsed_time

bigint

Geçen süreyi mikrosaniye (ama sadece doğru milisaniye) bu planın en son zamanlarda tamamlanmış yürütülmesi için bildirdi.

min_elapsed_time

bigint

Minimum geçen süreyi mikrosaniye tamamlanmış herhangi yürütme bu planı (ama sadece doğru milisaniye) bildirdi.

max_elapsed_time

bigint

En fazla geçen süreyi mikrosaniye (ama sadece doğru milisaniye) bu planın tamamlanmış herhangi yürütme için bildirdi.

query_hash

Binary(8)

Sorguyu hesaplanır ve benzer mantıkla sorguları tanımlamak için kullanılan ikili karma değeri. Sorgu karma toplama kaynak kullanımı sadece edebi değerleri farklı sorguları belirlemek için kullanabilirsiniz.

query_plan_hash

binary(8)

Sorgu yürütme planı üzerinde hesaplanan ve benzer sorgu yürütme planları tanımlamak için kullanılan ikili karma değeri. Sorgu planı karma birikmeli maliyet ile benzer yürütme planları sorguları bulmak için kullanabilirsiniz.

total_rows

bigint

Toplam sorgu tarafından döndürülen satır sayısı. NULL olamaz.

last_rows

bigint

Son sorgu yürütme tarafından döndürülen satır sayısı. NULL olamaz.

min_rows

bigint

En küçük satır sayısı, son derlenen onu bu yana plan yürütülmesinden sayısı sorgu tarafından döndürülen. NULL olamaz.

max_rows

bigint

En fazla satır sayısı, son derlenen onu bu yana plan yürütülmesinden sayısı sorgu tarafından döndürülen. NULL olamaz.

İzinler

Sunucu üzerindeki VIEW server state izni gerektirir.

Açıklamalar

Bir sorgu tamamlandığında görünümünde istatistikleri güncelleştirilir.

Örnekler

A.ÜST n sorguları bulma

Aşağıdaki örnek, sırada ortalama cpu zamanı tarafından üst beş sorgular hakkında bilgi verir. Böylece mantıklı eşdeğer sorguları kendi toplu kaynak tüketimine göre gruplandırılır Bu örnek sorguları kendi sorgu karma göre toplar.

USE AdventureWorks2012;
GO
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 "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;
GO

B.Satır sayısı toplamları sorgusu için döndürme

Aşağıdaki örnek satır sayısı toplu bilgiler (Toplam satırları, en az satır, en fazla satır ve son satırları) sorguları için verir.

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;

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;

Ayrıca bkz.

Başvuru

Dinamik yönetimi görünümler ve işlevler (Transact-sql)

Yürütme dinamik yönetimi görünümler ve işlevler (Transact-sql) ilgili

sys.dm_exec_sql_text (Transact-sql)

sys.dm_exec_query_plan (Transact-sql)