Aracılığıyla paylaş


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