sys.dm_exec_plan_attributes (Transact-SQL)
Plan tanıtıcısı tarafından belirtilen plan için plan öznitelik başına bir satır döndürür.Bu tablokullanabilirsiniz-değerli işlev önbelleği anahtar değerleri veya plan geçerli eşzamanlı çalıştırma sayısı gibi belirli bir plan hakkında ayrıntılı bilgi almak için.
Not
Aracılığıyla verilen bilgilerin bazıları bu işlev eşleştirir sys.syscacheobjects geriye dönük uyumluluk görünümü.
Sözdizimi
sys.dm_exec_plan_attributes ( plan_handle )
Bağımsız değişkenler
- plan_handle
Bir sorgu planı, yürüttü ve, planı plan önbelleğinde bulunan bir toplu iş için benzersiz olarak tanımlar.plan_handleis varbinary(64).Planı tanıtıcı elde edilebilir sys.dm_exec_cached_plans dinamik yönetim görünümü.
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
Öznitelik |
varchar(128) |
Bu plan ile ilişkili öznitelik adı.Aşağıdakilerden biri:
AttributeVeri türüAçıklama
set_options int Planı ile derlenen seçenek değerlerini gösterir.
objectID int Bir nesne önbelleğinde arama kullanılan ana anahtarlarını biri.Bu kimliği depolanmış nesnesidir sys.objects veritabanı nesnelerinin (yordamlar, görünümler, Tetikleyiciler vb.)."Geçici" türünde planları veya "Prepared" bir iç karma toplu iş metin.
DBID int varlık planı içeren veritabanı kimliği gösterir olur.Bu ad hoc veya hazırlanan planlar toplu iş yürütüldüğü veritabanı kimliğidir.
dbid_execute int Depolanan sistem nesneleri için kaynak veritabanı, önbelleğe alınan plan yürütülen, veritabanı kimliği.Diğer tüm durumlarda 0'dır.
user_id int Gönderilen toplu iş örtülü ad çözümlemesi bağlı değildir ve farklı kullanıcılar arasında paylaşılabilir -2 değeri gösterir.Tercih edilen yöntembudur.Başka bir değer veritabanında sorgu gönderen kullanıcının kullanıcı Kimliğini gösterir.
Dil_Kimliği smallint Cache nesnesi oluşturduğunuz bağlantının dil kimliği.Daha fazla bilgi için, bkz. sys.syslanguages (Transact-SQL).
date_format smallint Cache nesnesi oluşturduğunuz bağlantının tarih biçimi.Daha fazla bilgi için, bkz. set VBLONGDATE (Transact-SQL).
date_first tinyint Tarih ilk değeri.Daha fazla bilgi için, bkz. set DATEFIRST (Transact-SQL).
Durum int Önbellek arama anahtarbir parçası olan iç durumu bit.
required_cursor_options int imleç türü gibi kullanıcı tarafından belirtilen imleç seçenekleri.
acceptable_cursor_options int İmleç seçenekleri SQL Server dolaylı olarak çok deyimyürütülmesini desteklemek için dönüştürebilir.Örneğin, kullanıcı bir dinamik imleçbelirtebilir, ancak sorgu iyileştiricisi bir statik imleçbu imleç türü dönüştürmek izin verilir.Daha fazla bilgi için, bkz. Örtülü imleç dönüşümlerini kullanma.
inuse_exec_context int Sorgu planını kullanarak toplu işlemleri yürütülmekte numarası.Yürütme içeriği ve sorgu planları hakkında daha fazla bilgi için bkz: Yeniden yürütme planı önbellekleme ve.
free_exec_context int Şu anda kullanılmayan sorgu planı için önbelleğe alınan yürütme içerik sayısı.
hits_exec_context int Kaç kez yürütme içeriği planı önbellekten alınan ve SQL deyimderlenmesine yükünü yeniden kullanılır.Bir toplu tüm toplu iş yürütmeler için şu ana kadar değerdir.
misses_exec_context int Sayısı yürütme içeriği planı önbellekte toplu iş yürütme için yeni bir yürütme içeriği oluşturulması sonuçta bulunamadı.
removed_exec_context int Önbelleğe alınan plan üzerindeki bellek baskısı nedeniyle kaldırılan yürütme içerik sayısı.
inuse_cursors int Önbelleğe alınan planı kullanarak bir veya daha fazla işaretçiler içeren toplu işlemleri yürütülmekte numarası.
free_cursors int Önbelleğe alınan planın boş ya da boş imleçler sayısı.
hits_cursors int Sayısı, etkin olmayan bir imleç önbelleğe alınmış planından alınan ve yeniden kullanılabilir.Bir toplu tüm toplu iş yürütmeler için şu ana kadar değerdir.
misses_cursors int Sayısı, etkin olmayan bir imleç önbellekte bulunamadı.
removed_cursors int Önbelleğe alınan plan üzerindeki bellek baskısı nedeniyle kaldırılan imleçler sayısı.
sql_handle varbinary (64)toplu işiçin SQL işleci.
merge_action_type smallint Tetiğin yürütme planı birleştirme deyimsonucu olarak kullanılan türü. 0, bir tetikleyici planı, yürütmek birleştirme deyimsonucu olarak yapan bir tetikleyici planı veya yalnızca silme eylembelirtir bir birleştirme deyim sonucu olarak yürüten bir tetikleyici planı gösterir.1 birleştirme deyimsonucu olarak çalışan bir INSERT tetikleyici planı gösterir.2 bir birleştirme deyimsonucu olarak çalışan bir güncelleştirme tetikleyici planı gösterir.3 INSERT veya update eylemiçeren bir mektup birleştirme deyim sonucu olarak çalışan bir delete tetikleyici planı gösterir.İç içe Tetikleyiciler basamaklı eylemleri tarafından çalıştırmak için bu, art arda neden birleştirme deyim eylem değerdir.
|
value |
sql_variant |
Bu plan ile ilişkili öznitelik değeri. |
is_cache_key |
bit |
öznitelik için planı önbellek arama anahtar bir parçası olarak kullanılıp kullanılmayacağını belirtir. |
İzinler
Sunucu üzerindeki görünüm server state izni gerektirir.
Açıklamalar
Seçeneklerini ayarlama
, Aynı derlenmiş planı kopyalarını farklı yalnızca değer olarak set_options sütun.Bu, farklı bağlantılar aynı sorgu için farklı seçenekler kümelerinden birini KÜMESİ kullandığınızı gösterir.Planı yeniden daha fazla derlemeler neden ve birden çok kopyasını önbelleğindeki planları nedeniyle önbellek Enflasyon planı farklı seçenekler kümelerinden birini kullanarak genellikle istenmeyen çünkü.Daha fazla bilgi için, bkz. Sorgu önerileri ayarlama.
Set seçenekleri değerlendirme
Döndürülen değer çevirmek için set_options ile plan derlenmiş, seçeneklerine çıkarmak değerleri set_options 0 ulaşıncaya kadar en büyük olası değeri ile başlayan değeri.Her bir değeri çıkarmak sorgu planında kullanılan bir seçeneğe karşılık gelir.Örneğin, değer set_options 251, planı ile derlenmiş ANSI_NULL_DFLT_OFF (128), QUOTED_IDENTIFIER (64), ANSI_NULLS(32), ANSI_WARNINGS (16), CONCAT_NULL_YIELDS_NULL (8), paralel Plan(2) ve ANSI_PADDING (1) seçeneklerdir.
Seçenek |
Değer |
---|---|
ANSI_PADDING |
1 |
Paralel planı |
2 |
FORCEPLAN |
4 |
CONCAT_NULL_YIELDS_NULL |
8 |
ANSI_WARNINGS |
16 |
ANSI_NULLS |
32 |
QUOTED_IDENTIFIER |
64 |
ANSI_NULL_DFLT_OFF |
128 |
ANSI_NULL_DFLT_OFF |
256 |
NoBrowseTable Plan için Gözat işlemi uygulamak için çalışma tablo kullanmaz gösterir. |
512 |
TriggerOneRow SONRA tetikleyici delta tablolar için tek satır iyileştirme planı içerdiğini gösterir. |
1024 |
ResyncQuery Sorgu iç sistem saklı yordamlarıtarafından gönderildiği gösterir. |
2048 |
ARITH_ABORT |
4096 |
NUMERIC_ROUNDABORT |
8192 |
DATEFIRST |
16384 |
VBLONGDATE |
32768 |
DilKimliği |
65536 |
ÜZERİNE Planın derlendiğinde PARAMETERİZASYONUNU veritabanı seçeneğini küme için ZORLANAN olduğunu gösterir. |
131072 |
İmleçler
imleç depolamak için kullanılan bellek imleçler eşzamanlı kullanıcı tarafından yeniden kullanılabilir böylece etkin imleçler içinde derlenmiş bir planı önbelleğe alınır.Örneğin, bir toplu iş bildirir ve ayırmayı kaldırma olmadan bir imleç kullanır olduğunu varsayalım.İki kullanıcı aynı toplu işyürütme varsa, iki etkin imleçler olacaktır.İmleçler (büyük olasılıkla farklı toplu olarak) ayırmanın sonra imleç depolamak için kullanılan bellek önbelleğe alınmış ve serbest.Etkin imleçler listesini derlenmiş planında tutulur.Sonraki saat bir kullanıcı toplu işyürütür, önbelleğe alınmış imleç bellek yeniden ve uygun etkin bir imleçbaşlatıldı.
İmleç seçenekleri değerlendirme
Döndürülen değer çevirmek için required_cursor_options ve acceptable_cursor_options ile plan derlenmiş, seçeneklerine çıkarmak sütun değeri 0 ulaşıncaya kadar en büyük olası değeri ile başlayan değerler.Her bir değeri çıkarmak sorgu planında kullanılan bir imleç seçeneğe karşılık gelir.
Seçenek |
Değer |
---|---|
Hiçbiri |
0 |
DUYARLI |
1 |
KAYDIRMA |
2 |
SALT OKUNUR |
4 |
GÜNCELLEŞTİRMESİ |
8 |
YEREL |
16 |
GENEL |
32 |
FORWARD_ONLY |
64 |
ANAHTAR KÜMESİ |
128 |
DİNAMİK |
256 |
SCROLL_LOCKS |
512 |
İYİMSER |
1024 |
STATİK |
2048 |
FAST_FORWARD |
4096 |
IN YERLEŞTİR |
8192 |
İÇİNselect_statement |
16384 |
Örnekler
A.Belirli bir plan için öznitelikleri döndürme
Aşağıdaki örnek, belirtilen plan için tüm plan öznitelikleri döndürür.sys.dm_exec_cached_plansdinamik yönetim görünümü sorgulanan ilk belirtilen plan için plan tanıtıcı elde etmek için. İkinci sorguda, yerini <plan_handle> bir plan ile tanıtıcı değerini ilk sorgu.
SELECT plan_handle, refcounts, usecounts, size_in_bytes, cacheobjtype, objtype
FROM sys.dm_exec_cached_plans;
GO
SELECT attribute, value, is_cache_key
FROM sys.dm_exec_plan_attributes(<plan_handle>);
GO
B.Derlenmiş planları seçeneklerini ayarlama ve önbelleğe alınan planları için SQL tanıtıcı
Aşağıdaki örnek, her planı ile derlenen seçeneklerini gösteren bir değer döndürür.Buna ek olarak, önbelleğe alınmış tüm planları için SQL tanıtıcısı döndürülür.
SELECT plan_handle, pvt.set_options, pvt.sql_handle
FROM (
SELECT plan_handle, epa.attribute, epa.value
FROM sys.dm_exec_cached_plans
OUTER APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
WHERE cacheobjtype = 'Compiled Plan') AS ecpa
PIVOT (MAX(ecpa.value) FOR ecpa.attribute IN ("set_options", "sql_handle")) AS pvt;
GO