Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri
Microsoft Fabric'te
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği SQL veritabanı
Önceden önbelleğe alınmış bir sorgu planı için bilinen son gerçek yürütme planının eşdeğerini döndürür.
Sözdizimi
sys.dm_exec_query_plan_stats ( plan_handle )
Arguments
plan_handle
Yürütülen ve planı plan önbelleğinde bulunan veya şu anda yürütülmekte olan bir toplu iş için sorgu yürütme planını benzersiz olarak tanımlayan belirteç. plan_handlevarbinary(64) şeklindedir.
plan_handle aşağıdaki dinamik yönetim nesnelerinden alınabilir:
- sys.dm_exec_cached_plans
- sys.dm_exec_query_stats
- sys.dm_exec_requests
- sys.dm_exec_procedure_stats
- sys.dm_exec_trigger_stats
Tablo döndürüldü
| Sütun adı | Veri türü | Description |
|---|---|---|
dbid |
smallint | Bu plana karşılık gelen Transact-SQL deyimi derlendiğinde geçerli olan bağlam veritabanının kimliği. Geçici ve hazırlanmış SQL deyimleri için, deyimlerin derlendiği veritabanının kimliği. Sütun null atanabilir. |
objectid |
int | Bu sorgu planı için nesnenin kimliği (örneğin saklı yordam veya kullanıcı tanımlı işlev). Geçici ve hazırlanmış toplu işlemler için bu sütun null olur. Sütun null atanabilir. |
number |
smallint | Numaralandırılmış saklı yordam tamsayısı. Örneğin, uygulama için orders bir yordam grubu , orderproc;1vb. olarak adlandırılabilirorderproc;2. Geçici ve hazırlanmış toplu işlemler için bu sütun null olur.Sütun null atanabilir. |
encrypted |
bit | Karşılık gelen saklı yordamın şifrelenip şifrelenmediğini gösterir. 0 = şifrelenmemiş 1 = şifrelenmiş Sütun boş değer atanamaz. |
query_plan |
xml |
plan_handle ile belirtilen gerçek sorgu yürütme planının bilinen son çalışma zamanı Showplan gösterimini içerir. Showplan XML biçimindedir. Geçici Transact-SQL deyimleri, saklı yordam çağrıları ve kullanıcı tanımlı işlev çağrıları gibi her toplu işlem için bir plan oluşturulur. Sütun null atanabilir. |
Açıklamalar
Bu, isteğe bağlı bir özelliktir. Sunucu düzeyinde etkinleştirmek için izleme bayrağı 2451'i kullanın. Veritabanı düzeyinde etkinleştirmek için LAST_QUERY_PLAN_STATS) seçeneğini kullanın.
Bu sistem işlevi , basit sorgu yürütme istatistikleri profil oluşturma altyapısı altında çalışır. Daha fazla bilgi için bkz. Sorgu Profili Oluşturma Altyapısı.
Showplan çıkışı sys.dm_exec_query_plan_stats aşağıdaki bilgileri içerir:
Önbelleğe alınan planda bulunan tüm derleme zamanı bilgileri
İşleç başına gerçek satır sayısı, toplam sorgu CPU süresi ve yürütme süresi, taşma uyarıları, gerçek DOP, en fazla kullanılan bellek ve verilen bellek gibi çalışma zamanı bilgileri
Aşağıdaki koşullar altında, için döndürülen tablonun sütununda query_plansys.dm_exec_query_plan_stats eşdeğer bir Showplan çıkışı döndürülür:
Plan sys.dm_exec_cached_plans bulunabilir.
ve
Yürütülen sorgu karmaşık veya kaynak tüketen bir sorgudur.
Aşağıdaki koşullar altında, için döndürülen tablonun sütununda basitleştirilmişquery_plan Showplan çıkışı döndürülürsys.dm_exec_query_plan_stats:
Plan sys.dm_exec_cached_plans bulunabilir.
ve
Sorgu yeterince basittir ve genellikle OLTP iş yükünün bir parçası olarak kategorilere ayrılmıştır.
1 Yalnızca kök düğüm işlecini (SELECT) içeren bir Showplan'a başvurur.
Aşağıdaki koşullar altında, içinden sys.dm_exec_query_plan_stats:
kullanılarak
plan_handlebelirtilen sorgu planı plan önbelleğinden çıkarıldı.veya
Sorgu planı ilk etapta önbelleğe alınamadı. Daha fazla bilgi için bkz. Yürütme Planı Önbelleğe Alma ve Yeniden Kullanma.
Uyarı
XML veri türünde izin verilen iç içe düzey sayısı sınırlaması, 128 iç içe öğe düzeyini karşılayan veya aşan sorgu planlarını döndüremeyecek anlamına gelirsys.dm_exec_query_plan. SQL Server'ın önceki sürümlerinde bu koşul sorgu planının döndürülmesini engelledi ve 6335 hatasını oluşturuyordu. SQL Server 2005 (9.x) Service Pack 2 ve sonraki sürümlerinde sütunu query_plan döndürür NULL.
Permissions
SQL Server 2019 (15.x) ve önceki sürümler sunucuda izin gerektirir VIEW SERVER STATE .
SQL Server 2022 (16.x) ve sonraki sürümleri sunucuda izin gerektirir VIEW SERVER PERFORMANCE STATE .
Örnekler
A. Belirli bir önbelleğe alınmış plan için bilinen son gerçek sorgu yürütme planına bakın
Aşağıdaki örnek, ilginç planı bulmak ve çıkıştan kopyalamak sys.dm_exec_cached_plans için sorgularplan_handle.
SELECT * FROM sys.dm_exec_cached_plans;
GO
Ardından, bilinen son gerçek sorgu yürütme planını elde etmek için ile kopyalanan plan_handle sistem işlevini sys.dm_exec_query_plan_statskullanın.
SELECT * FROM sys.dm_exec_query_plan_stats(< copied plan_handle >);
GO
B. Tüm önbelleğe alınmış planlar için bilinen son gerçek sorgu yürütme planına bakın
SELECT * FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
CROSS APPLY sys.dm_exec_query_plan_stats(plan_handle) AS qps;
GO
C. Belirli bir önbelleğe alınmış plan ve sorgu metni için bilinen son gerçek sorgu yürütme planına bakın
SELECT * FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
CROSS APPLY sys.dm_exec_query_plan_stats(plan_handle) AS qps
WHERE st.text LIKE 'SELECT * FROM Person.Person%';
GO
D. Tetikleyici için önbelleğe alınmış olaylara bakın
SELECT * FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_query_plan_stats(plan_handle)
WHERE objtype = 'Trigger';
GO