sys.dm_exec_query_optimizer_info (Transact-SQL)
Çalışması hakkında ayrıntılı istatistiklerini verir SQL Server sorgu iyileştiricisi. Bu görünüm bir iş yükünü ayarlama, sorgu en iyi duruma getirme sorunları veya geliştirmeleri belirlemek için kullanabilirsiniz.Örneğin, son maliyet değerini en iyi duruma getirme ve geçen saat değeri toplam sayısı, sorgu en iyi duruma getirmeleri geçerli iş yükünü ve ayarlama işlemi sırasında gözlenen değişiklikleri karşılaştırmak için kullanabilirsiniz.Bazı sayaçlar yalnızca ilgili verileri sağlar. SQL Server iç tanılama kullanın. Bu sayaç yalnızca "iç." olarak işaretlenmiş
Name |
Veri türü |
Açıklama |
---|---|---|
sayacı |
nvarchar(8000) |
En iyi duruma getiricisi istatistikleri olay adı. |
oluşumu |
bigint |
Bu sayaç için en iyi duruma getirme olay yinelenme sayısı. |
value |
float |
Olay tekrarı başına ortalama özellik değeri. |
İzinler
Sunucudaki SUNUCU DURUM VIEW iznine gerek duyar.
Remarks
sys.dm_exec_query_optimizer_info (sayaç) aşağıdaki özellikleri içerir.Tüm oluşumu değerleri birikimlidir ve sistem yeniden 0 olarak küme.Değer alanlar için tüm değerleri, sistemin yeniden başlatılmasını NULL olarak küme.Aynı satırda oluşumu değeri payda hesaplamasında Ortalama, ortalama belirttiğiniz tüm değer sütun değerleri kullanın.Tüm en iyi duruma getirmeleri query ne zaman olarak ölçülür SQL Server değişiklikleri belirler. dm_exec_query_optimizer_infoHer iki kullanıcı ve sistem tarafından oluşturulan sorgular da dahil olmak üzere. Önceden önbelleğe alınmış bir planı yürütülmesini değerleri değiştirme dm_exec_query_optimizer_info, yalnızca en iyi duruma getirmeleri önemli.
Sayacı |
Oluşumu |
Değer |
---|---|---|
en iyi duruma getirme |
En iyi duruma getirmeleri toplam sayısı. |
Geçerli değil |
geçen saat |
En iyi duruma getirmeleri toplam sayısı. |
En iyi duruma getirilmesi (sorgu) tek bir deyim saniye başına ortalama geçen saat. |
son maliyet |
En iyi duruma getirmeleri toplam sayısı. |
Dahili maliyet birimlerindeki en iyi duruma getirilmiş bir plan için tahmini ortalama maliyeti. |
Önemsiz planı |
Yalnızca iç |
Yalnızca iç |
Görevler |
Yalnızca iç |
Yalnızca iç |
hiçbir planı |
Yalnızca iç |
Yalnızca iç |
0'ı arama |
Yalnızca iç |
Yalnızca iç |
Arama 0 saat |
Yalnızca iç |
Yalnızca iç |
Arama 0 görevler |
Yalnızca iç |
Yalnızca iç |
1'ı arama |
Yalnızca iç |
Yalnızca iç |
Arama 1 saat |
Yalnızca iç |
Yalnızca iç |
Arama 1 görevler |
Yalnızca iç |
Yalnızca iç |
2'ı arama |
Yalnızca iç |
Yalnızca iç |
Arama 2 saat |
Yalnızca iç |
Yalnızca iç |
Arama 2 görevler |
Yalnızca iç |
Yalnızca iç |
Aşama 1. Aşama için 0 geçirmesine |
Yalnızca iç |
Yalnızca iç |
Aşama 1. Aşama için 1 geçirmesine |
Yalnızca iç |
Yalnızca iç |
zaman aşımı |
Yalnızca iç |
Yalnızca iç |
bellek sınırı aşıldı |
Yalnızca iç |
Yalnızca iç |
stmt Ekle |
En iyi duruma getirmeleri için INSERT deyimleri olan alt işlemleri sayısı. |
Geçerli değil |
stmt silme |
DELETE deyimleri için olan en iyi duruma getirmeleri sayısı. |
Geçerli değil |
Güncelleştirme stmt |
UPDATE deyimi için olan en iyi duruma getirmeleri sayısı. |
Geçerli değil |
alt sorgu içeren |
En iyi duruma getirme (Bu bağlantı için en az bir alt sorgu içeren sorgu sayısı. |
Geçerli değil |
başarısız unnest |
Yalnızca iç |
Yalnızca iç |
tablolar |
En iyi duruma getirmeleri toplam sayısı. |
En iyi duruma getirilmiş bir sorguya başvurulan tablolar ortalama sayısı. |
ipuçları |
Sayısı bazı ipucu belirtildi.Sayılan ipuçları içerir: birleştirmek, GROUP, UNION ve FORCE ORDER sorgu ipuçları, FORCE PLANLA seçeneğini ayarlamak ve ipuçları katılın. |
Geçerli değil |
Sipariş ipucu |
Bir zorlama sipariş ipucu sayısı belirtildi. |
Geçerli değil |
birleştirmek ipucu |
Sayısı birleştirmek algoritması tarafından bir birleştirmek ipucu zorlandı. |
Geçerli değil |
Görünüm başvurusu |
Sayısı sorguda bir görünüme başvuruyor. |
Geçerli değil |
Uzak bir sorgu |
Sorgu, tablo four-part bir ad veya bir OPENROWSET sonuç gibi en az bir uzak veri kaynağı Burada başvuruda bulunulan en iyi duruma getirmeleri sayısı. |
Geçerli değil |
en fazla DOP |
En iyi duruma getirmeleri toplam sayısı. |
Ortalama etkin MAXDOP değeri en iyi duruma getirilmiş bir plan.Varsayılan olarak etkin MAXDOP saptanır parallelism en büyük ölçüde sunucu yapılandırma seçeneği ve belirli bir sorgu için sorgu MAXDOP ipucu değeri tarafından geçersiz kılınmış olabilir. |
en fazla özyineleme düzey |
En iyi duruma getirmeleri MAXRECURSION düzey 0'dan büyük sorgu ipucu belirtilmedi sayısı. |
En fazla özyineleme düzey ile sorgu ipucunu burada belirtilen ortalama MAXRECURSION düzeyinde en iyi duruma getirme. |
Dizin oluşturulmuş görünümler yükledi |
Yalnızca iç |
Yalnızca iç |
Dizin oluşturulmuş görünümler eşleşmedi |
Burada bir veya daha çok dizin oluşturulmuş görünümler eşleşen en iyi duruma getirmeleri sayısı. |
Eşleşen görünümleri ortalama sayısı. |
kullanılan dizin oluşturulmuş görünümler |
Bir veya daha çok dizin oluşturulmuş görünümler eşleşen sonra çıkış plandaki kullanıldığı en iyi duruma getirmeleri sayısı. |
Görünümler kullanılan ortalama sayısı. |
Dizin oluşturulmuş görünümler güncelleştirildi |
Bir veya daha çok dizin oluşturulmuş görünümler tutan bir plan üretir ve iyileştirmeleri DML ekstresinin numarası. |
Tutulan görünümleri ortalama sayısı. |
Dinamik imleç isteği |
Bir dinamik imleç isteği belirtilmedi en iyi duruma getirmeleri sayısı. |
Geçerli değil |
hızlı ileri imleç isteği |
En iyi duruma getirmeleri ileri sarma imleç isteği belirtilmedi sayısı. |
Geçerli değil |
birleştirme stmt |
En iyi duruma getirmeleri için BIRLEŞTIRME ifadeleri olan alt işlemleri sayısı. |
Geçerli değil |
Örnekler
C.Üzerinde en iyi duruma getiricisi Yürütme istatistiklerini görüntüleme
Bu örnek için geçerli en iyi duruma getiricisi Yürütme istatistiklerini nelerdir SQL Server?
SELECT * FROM sys.dm_exec_query_optimizer_info;
b.En iyi duruma getirmeleri toplam sayısını görüntüleme
En iyi duruma getirmeleri kaç yapılır?
SELECT occurrence AS Optimizations FROM sys.dm_exec_query_optimizer_info
WHERE counter = 'optimizations';
c.En iyi duruma getirme başına ortalama saat
En iyi duruma getirme başına ortalama saat nedir?
SELECT ISNULL(value,0.0) AS ElapsedTimePerOptimization
FROM sys.dm_exec_query_optimizer_info WHERE counter = 'elapsed time';
d.Alt sorgular içeren en iyi duruma getirmeleri bölümü
En iyi duruma getirilmiş sorgularının hangi kesir bir alt sorgunun içerdiği?
SELECT (SELECT CAST (occurrence AS float) FROM sys.dm_exec_query_optimizer_info WHERE counter = 'contains subquery') /
(SELECT CAST (occurrence AS float)
FROM sys.dm_exec_query_optimizer_info WHERE counter = 'optimizations')
AS ContainsSubqueryFraction;