Aracılığıyla paylaş


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