sys.dm_exec_plan_attributes (Transact-SQL)
Plan tanıtıcısı tarafından belirtilen plan için plan özniteliği başına bir satır döndürür.Bu tablo değerli işlev, belirli bir plan (önbellek anahtar değerleri veya planın geçerli eşzamanlı yürütmeler sayısı gibi ilgili ayrıntıları almak için kullanabilirsiniz.
Not
Aracılığıyla verilen bilgilerin bu işlev eşleştiren sys.syscacheobjects geriye dönük uyumluluk görüntüleyin.
sys.dm_exec_plan_attributes ( plan_handle )
Bağımsız değişkenler
- plan_handle
Uniquely identifies a query plan for a batch that has executed and whose plan resides in the plan cache.plan_handle is varbinary(64).Gelen planı tanıtıcı elde sys.dm_exec_cached_plans dinamik yönetimi görüntüleyin.
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
öznitelik |
varchar(128) |
Bu plan ile ilişkili özniteliğinin adı.Aşağıdakilerden biridir:
AttributeVeri türüAçıklama
set_options int Plan ile derlenen seçenek değerleri gösterir.
ObjectId int Bir nesne önbelleğinde arama kullanılan ana anahtardan biriyle.Bu KODU depolanan nesnesidir sys.Objects veritabanı nesnelerinin (yordamlar, görünümler, Tetikleyicileri vb.)."Geçici" veya "Prepared" türü planları için bu bir iç toplu iş iş metin karmasıdır.
DBID int Varlık planı içeren veritabanı KIMLIĞI başvurduğu belirtilir.Ad hoc veya hazırlıklı planları için bu toplu iş iş işlemin yürütüldüğü veritabanı KIMLIĞI olur.
dbid_execute int Saklanan sistem nesneleri için Kaynak veritabanı, önbelleğe alınmış planı yürütüldüğü veritabanı KIMLIĞI.Diğer tüm durumlarda, 0'dır.
USER_ID int Gönderilen toplu iş iş örtülü ad çözümlemesi bağlıdır ve farklı kullanıcılar arasında paylaşılabilir, -2 değerini gösterir.Bu tercih edilen yöntemdir.Başka bir değer, veritabanındaki sorguyu gönderen kullanıcının kullanıcı KIMLIĞINI gösterir.
language_id smallint Önbellek nesnesini oluşturan bağlantının dil KIMLIĞI.Daha fazla bilgi için bkz:sys.syslanguages (Transact-SQL).
date_format smallint Önbellek nesnesini oluşturan bağlantının tarih biçimi.Daha fazla bilgi için bkz:küme DATEFORMAT (Transact-SQL).
date_first tinyint Ilk tarih değeri.Daha fazla bilgi için bkz:küme DATEFIRST (Transact-SQL).
Durum int Önbellek araması bir parçası olan bir iç durum bit anahtar.
required_cursor_options int Imleç türü gibi kullanıcı tarafından belirtilen imleç seçenekleri.
acceptable_cursor_options int imleç, seçenekleri SQL Server örtülü olarak deyim yürütülmesini desteklemek için dönüştürme. Örneğin kullanıcı, dinamik bir imleç belirtebilir, ancak sorgu iyileştiricisi için statik bir imleç bu imleç türünü dönüştürmek için izin verilir.Daha fazla bilgi için bkz:Örtülü imleç Dönüşümlerini kullanma.
inuse_exec_context int Toplu işlemleri kullanan sorgu planına yürütülmekte numarası.Içerik ve sorgu yürütme planları hakkında daha fazla bilgi için bkz: Yürütme planı önbelleğe alma ve yeniden.
free_exec_context int Şu anda kullanılmayan önbellekteki yürütme kapsamları için bir sorgu planını sayısı.
hits_exec_context int Sayısı yürütme içeriği planı önbellekten alınan ve SQL deyim recompiling yükünü yeniden kullanılabilir.Tüm toplu iş yürütme için toplamak şimdiye değerdir.
misses_exec_context int Sayısı bir yürütme içeriği planı önbelleğinde, toplu iş yürütme için yeni bir yürütme içeriği oluşturulmasını sonuçta bulunamadı.
removed_exec_context int Önbelleğe alınmış plan üzerinde bellek baskısı nedeniyle kaldırılmıştır yürütme bağlamları sayısı.
inuse_cursors int Geçerli önbellekteki planı kullanan bir veya daha fazla işaretçiler içeren toplu işleri çalıştırma sayısı.
free_cursors int Boşta kalma ya da boş işaretçiler önbellekteki planın sayısı.
hits_cursors int Sayısı ve etkin olmayan bir imleç önbellekteki planından alınan ve yeniden kullanılabilir.Tüm toplu iş yürütme için toplamak şimdiye değerdir.
misses_cursors int Sayısı, etkin olmayan bir imleç önbellekte bulunamadı.
removed_cursors int Önbelleğe alınmış plan üzerinde bellek baskısı nedeniyle kaldırılmıştır imleç sayısı.
sql_handle varbinary (64)Toplu iş için SQL işleci.
merge_action_type smallint Bir mektup BIRLEŞTIRME işleminin sonucu olarak kullanılan, tetiğin yürütme planı türünü deyim. 0 dışındaki tetikleyicisi plan, bir BIRLEŞTIRME ifadesinin sonucu olarak çalıştırılacak bir tetikleyici planı veya yalnızca bir DELETE eylem belirten BIRLEŞTIRME bir deyim sonucu olarak çalışan bir tetikleyici planı gösterir.bir mektup BIRLEŞTIRME işleminin sonucu olarak çalışan bir INSERT tetiğin planı 1 gösterir deyim.bir mektup BIRLEŞTIRME işleminin sonucu olarak çalışan bir UPDATE tetikleyicisi planı 2 gösterir deyim.3 BIRLEŞTIRME sonucu olarak çalışan bir DELETE Tetik planı gösterir deyim karşılık gelen bir INSERT veya UPDATE işlemi içeren.Iç içe geçmiş Tetikleyicileri basamaklı eylemleri tarafından çalıştırmak için bu değer art arda sıralı neden BIRLEŞTIRME deyimini eylemdir.
|
value |
sql_variant |
Bu plan ile ilişkili olan bir öznitelik değeri. |
is_cache_key |
bit |
Öznitelik planın önbelleğinde arama anahtarının bir parçası olarak mı kullanıldığını gösterir. |
İzinler
Sunucudaki SUNUCU DURUM VIEW iznine gerek duyar.
Remarks
Seçeneklerini küme
Değer olarak yalnızca derlenmiş aynı planın kopyasını farklılık gösterebilir set_options sütun.Bu, farklı bağlantılar aynı sorgu için farklı ayarlar küme seçenekleri kullandığınızı gösterir.Bu planı yeniden kullanmak üzere daha fazla derleme için neden ve önbellek planlardaki birden çok kopyası nedeniyle önbellek Enflasyon planlamak için farklı ayarlar seçenekler genellikle istenmeyen kullanmaktır.Daha fazla bilgi için bkz:Sorgu öneriler ayarlama.
küme seçenekleri değerlendiriliyor
Döndürülen değeri çevrilemedi. set_options hangi planın derlendi, seçeneklerine değerleri çıkarmakset_options değeri 0 ulaşana dek, en büyük olası değeri ile başlatılıyor.Sorgu planı içinde kullanılan bir seçenek, çıkarmak, her değeri karşılık gelir.Örneğin, değer set_options 251, planı birlikte derlendi seçenekleri şunlardır: ANSI_NULL_DFLT_ON (128), QUOTED_IDENTIFIER (64), ANSI_NULLS(32), ANSI_WARNINGS (16), CONCAT_NULL_YIELDS_NULL (8), Parallel Plan(2) ve ANSI_PADDING (1).
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ı bir iş tablosu FOR BROWSE bir işlem uygulamak kullanmadığından gösterir. |
512 |
TriggerOneRow Plan için tek satır iyileştirme tetikleyicisi delta tabloları SONRA içerdiğini gösterir. |
1024 |
ResyncQuery Sorgu iç sistem saklı yordamları tarafından gönderilme gösterir. |
2048 |
arith_abort |
4096 |
numeric_roundabort |
8192 |
datefirst |
16384 |
dateformat |
32768 |
DilKimliği |
65536 |
BAĞLI Veritabanı seçeneği PARAMETERIZATION tamamlandığını belirten küme için plan derlendi zaman FORCED. |
131072 |
Imleçler
Etkin olmayan bir imleç, imleci depolamak için kullanılan bellek imleçler eşzamanlı kullanıcı tarafından yeniden kullanılabilir böylece derlenmiş bir planda önbelleğe alınır.Örneğin, bir toplu iş bildirir ve ayırmayı kaldırma olmadan bir imleç kullanır varsayalım.Iki kullanıcı aynı toplu iş iş iş yürütülürken, iki etkin imleçler olacaktır.Imleçler (büyük olasılıkla farklı toplu olarak) ayırmanın sonra imleç depolamak için kullanılan bellek önbelleğe ve değil yayımladı.Bu liste, etkin olmayan imleçler derlenmiş planındaki tutulur.Bir kullanıcı toplu iş iş, yürütür sonraki açışınızda önbellekteki imleç bellek yeniden ve uygun etkin olan bir imleç başlatıldı.
Imleç seçenekleri değerlendiriliyor
Döndürülen değeri çevrilemedi. required_cursor_options and acceptable_cursor_options ile plan derlendi, seçenekler için değerler 0 ulaşana dek, en büyük olası değeri ile başlayarak sütun değeri çıkarmak.Sorgu planı içinde kullanılan bir imleç seçeneği, çıkarmak, her değeri karşılık gelir.
Seçenek |
Değer |
---|---|
None |
0 |
BÜYÜK KÜÇÜK HARF 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 |
İÇİNDE YER |
8192 |
İÇİN select_statement |
16384 |
Örnekler
C.Belirli bir plan özniteliklerini döndürülüyor
Aşağıdaki örnek, belirtilen bir planı tüm planı özniteliklerini döndürür.The sys.dm_exec_cached_plans dinamik yönetim görünümü is queried first to obtain the plan handle for the specified plan. Ikinci sorguyu değiştirin. <plan_handle> bir planı ilk sorguyu değeri işler.
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ıyla ilgili küme seçenekleri ve önbelleğe alınan planları SQL tanıtıcı döndürülüyor
Aşağıdaki örnek, her bir plan ile derlenen seçeneklerini gösteren bir değeri döndürür.Buna ek olarak, önbelleğe alınmış tüm planları SQL tanıtıcı döndürdü.
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