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