kullanınsys.dm_exec_plan_attributesTetikleyici (Transact-sql)

Planı özniteliğini planı tanıtıcısı tarafından belirtilen plan için başına bir satır döndürür. Önbellek anahtar değerleri veya plan geçerli eşzamanlı yürütmeler numarasını gibi belirli bir plan hakkında bilgi için bu tablo değerli işlev kullanabilirsiniz.

[!NOT]

Bazı aracılığıyla döndürülen bilgileri bu işlev eşleştirir eşleştirirsys.syscacheobjectsgeriye 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
    O yürüttü ve kimin planı plan önbelleğinde bulunan toplu iş için bir sorgu planı benzersiz olarak tanımlar. plan_handleis varbinary(64). Planı tanıtıcı sayfasından elde edilebilir içinsys.dm_exec_cached_plansDinamik 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 öznitelik adı. Aşağıdakilerden biri:

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 anahtar.Bu kimliği saklı nesnesidir sys.objects veritabanı nesnelerinin (yordamlar, görünümler, Tetikleyiciler vb.).Türü "Geçici" planları veya "Hazır", bir iç Karma toplu metin.
DBID int Varlık planı içeren veritabanı Kımlığı başvuran olduğunu.Geçici ya da hazırlıklı planları için toplu yürütüldüğü veritabanı Kımlığı öyle.
dbid_execute int Depolanan sistem nesneleri için kaynak veritabanı, önbelleğe alınan planı yürütüldüğünde veritabanı Kımlığı.Tüm diğer durumlarda 0'dır.
user_id int Değeri-2, gönderilmektedir toplu örtülü ad çözümlemesi bağlı değildir ve farklı kullanıcılar arasında paylaşılabilir gösterir.Tercih edilen yöntem budur.Başka bir değer veritabanında sorgu göndererek kullanıcının kullanıcı kimliğini gösterir.
Dil_Kimliği smallint Önbellek nesnesini oluşturan bağlantı dil Kımlığı.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 dateformat (Transact-sql).
date_first tinyint Tarihi ilk değeri.Daha fazla bilgi için, bkz. set DATEFIRST (Transact-sql).
durumu int Önbellek arama anahtar bir parçası iç durumu bit.
required_cursor_options int İmleç türü gibi kullanıcı tarafından belirtilen imleç seçenekleri.
acceptable_cursor_options int Imleç seçenekleri SQL Serverörtülü için deyimi yürütme desteklemek amacıyla dönüştürebilir.Örneğin, kullanıcı dinamik bir imleç belirtebilir, ancak sorgu iyileştirici bir statik imleç bu imleç türünü dönüştürmek izin verilir.Daha fazla bilgi için, bkz. Using Implicit Cursor Conversions.
inuse_exec_context int Sorgu planı kullanarak toplu işlemleri yürütülmekte sayısı.Yürütme içeriği ve sorgu planları hakkında daha fazla bilgi için bkz: Execution Plan Caching and Reuse.
free_exec_context int Sayısı, şu anda kullanılmayan önbelleğe alınmış yürütme için sorgu planı.
hits_exec_context int Yürütme içeriği planı önbellekten alınan ve sql deyimini yeniden yükü yeniden kez sayısı.Tüm toplu infaz için toplama defa değerdir.
misses_exec_context int Kaç kez bir yürütme içeriği plan önbelleğinde sonuçlanan toplu iş yürütme yeni bir yürütme içeriği oluşturma bulunamadı.
removed_exec_context int Sayısı önbelleğe alınan planı üzerinde bellek baskısı nedeniyle kaldırılan yürütme.
inuse_cursors int Şu anda önbelleğe alınmış planını kullanarak bir veya daha fazla imleçler içeren toplu işleri çalıştırma sayısı.
free_cursors int Önbelleğe alınan planı için boş ya da boş imleçler sayısı.
hits_cursors int Sayısı etkin bir imleç önbelleğe alınmış planından alınan ve yeniden kullanılabilecek.Tüm toplu infaz için toplama defa değerdir.
misses_cursors int Sayısı, etkin olmayan bir imleç önbellekte bulunamadı.
removed_cursors int Önbelleğe alınan planı üzerinde bellek baskısı nedeniyle kaldırılan imleçler sayısı.
sql_handle varbinary (64)Toplu sql tanıtıcı.
Merge_action_type smallint Tetikleyici yürütme planı BIRLEŞTIRME deyimini sonucu olarak kullanılan türü. 0, bir tetikleyici plan, BIRLEŞTIRME deyimini sonucu olarak yürütmüyor bir tetikleyici planı ya da bir tetikleyici planı silme eylemi yalnızca belirten BIRLEŞTIRME deyimini sonucu olarak yürütür belirtir.1 BIRLEŞTIRME deyimini sonucu olarak çalışan bir INSERT tetikleyici planı gösterir.2 BIRLEŞTIRME deyimini sonucu olarak çalışan bir güncelleştirme tetikleyici planı gösterir.3 ilgili bir INSERT veya update eylemini içeren bir BIRLEŞTIRME deyimini sonucu olarak çalışır delete tetikleyici planı gösterir.İç içe Tetikleyiciler tarafından basamaklı eylemleri çalıştırmak için bu değeri art arda neden BIRLEŞTIRME deyimini eylemdir.

değer

sql_variant

Bu plan ile ilişkili öznitelik değeri.

is_cache_key

bit

Öznitelik önbellek arama anahtarı planın bir parçası olarak kullanılan gösterir.

İzinler

Sunucu üzerindeki VIEW server state izni gerektirir.

Açıklamalar

Set seçenekleri

Aynı derlenmiş planı kopyalarını farklı değer tarafından set_options sütun. Bu, farklı bağlantılar aynı sorgu için farklı set seçenekleri kümesini kullanarak gösterir. Çünkü daha az planı yeniden ilave derlemeler neden ve birden çok kopya planları önbelleğe nedeniyle önbellek enflasyon planı farklı seçenekleri kümesini kullanarak genellikle istenmeyen. Daha fazla bilgi için, bkz. Query Tuning Recommendations.

Set seçenekleri değerlendirme

Döndürülen değeri çevirmek için set_options değerleri ile derlenmiş planı seçenekleri, çıkarma set_options 0 ulaşana kadar en büyük olası değeri ile başlayan değeri. Sen çıkarmak her değer sorgu planında kullanılan seçeneği karşılık gelir. Örneğin, eğer değeri set_options 251, ANSI_NULL_DFLT_ON (128), quoted_ıdentıfıer (64), ANSI_NULLS(32), ANSI_WARNINGS (16), CONCAT_NULL_YIELDS_NULL (8), paralel Plan(2) ve ANSI_PADDING (1) planı derlenmiş olan seçenekleri vardır.

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_ON

128

ANSI_NULL_DFLT_OFF

256

NoBrowseTable

Plan for browse işlemi uygulamak için iş tablosu kullanmadığından gösterir.

512

TriggerOneRow

Plan için tek satır optimizasyon sonra tetikleyici delta tablolar içerdiğini gösterir.

1024

ResyncQuery

Sorgu dahili sistem saklı yordamlar tarafından gönderildiği gösterir.

2048

ARITH_ABORT

4096

NUMERIC_ROUNDABORT

8192

DATEFIRST

16384

DATEFORMAT

32768

DilKimliği

65536

ÜZERİNE

Planı derlenmişse forced PARAMETERIZATION veritabanı seçeneği ayarlanmış gösterir.

131072

İmleçler

Etkin imleçler derlenmiş bir planı önbelleğe imleç depolamak için kullanılan bellek imleçler eşzamanlı kullanıcılar tarafından yeniden kullanılabilir. Örneğin, varsayalım toplu bildirir ve ayırmayı kaldırma olmadan bir imleç kullanır. İki kullanıcı aynı toplu iş yürütme varsa, iki etkin imleçler olacaktır. Bir kez imleçler (büyük olasılıkla farklı gruplar halinde) kaldırıldı, imleci depolamak için kullanılan bellek önbelleğe ve serbest. Etkin imleçler listesini derlenmiş planında tutulur. Bir kullanıcı toplu yürütür bir dahaki önbelleğe alınmış imleç bellek yeniden ve uygun etkin bir imleç başlatıldı.

Imleç seçenekleri değerlendirme

Döndürülen değeri çevirmek için required_cursor_options ve acceptable_cursor_options sütun değeri, 0 ulaşana kadar en büyük olası değeri ile başlayan değerler seçenekleri ile derlenmiş planı, çıkar. Sen çıkarmak her değer sorgu planında kullanılan bir imleç seçeneği karşılık gelir.

Seçenek

Değer

Hiçbiri

0

BÜYÜK KÜÇÜK HARF DUYARLI

1

KAYDIRMA

2

SALT OKUNUR

4

GÜNCELLEŞTİRMESİ

8

YEREL

16

KÜRESEL

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 PLACE

8192

İÇİNselect_statement

16384

Örnekler

A.Belirli bir plan ö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önetimi görünümü sorgulanan ilk belirtilen plan planı tanıtıcı elde etmek için. İkinci sorguda, yerini <plan_handle>ilk sorgusunun değer bir planı ele.

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

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.set seçenekleri için derlenmiş planlarını ve önbelleğe alınan planları için sql tanıtıcı döndürme

Aşağıdaki örnek, her 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ü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

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

Ayrıca bkz.

Başvuru

Dinamik yönetimi görünümler ve işlevler (Transact-sql)

Yürütme dinamik yönetimi görünümler ve işlevler (Transact-sql) ilgili

içinsys.dm_exec_cached_plansDinamik (Transact-sql)

sys.Databases (Transact-sql)

sys.Objects (Transact-sql)