Aracılığıyla paylaş


set showplan_all (Transact-SQL)

Microsoft neden olan SQL Server yürütmekiçin değil Transact-SQL ifadeleri.Bunun yerine, SQL Server nasıl deyimleri yürütülen ve kaynak gereksinimleri tahminleri sağlar hakkında ayrıntılı bilgi döndürürdeyimleri.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

SET SHOWPLAN_ALL { ON | OFF }

Açıklamalar

set showplan_all ayarı yürütmek sırasında küme veya çalışma saat ve ayrıştırma saatzaman.

set showplan_all on, olduğunda SQL Server , çalıştırmadan her deyim yürütme bilgiler verir ve Transact-SQL ifadeleri yürütülmez.Bu seçenek küme on, tüm ilgili bilgileri olduktan sonraki Transact-SQL kadar seçenek, aygıtlarım küme ifadeleri döndürülürset showplan_all on, iken Örneğin, create table deyim yürütülmeden SQL Server hata iletisi belirtilen tablo yok kullanıcılar bildiren o aynı tabloile ilgili bir sonraki select deyim döndürür.Bu nedenle bu tablo sonraki başvurular başarısız.set showplan_all, kapalı olduğunda SQL Server yürütür deyimleri oluşturma raporu.

set showplan_all çıktısı işlemek için yazılan uygulamalar tarafından kullanılmak üzere hazırlanmıştır.set showplan_text Microsoft Win32 komut istemi uygulamalar için okunabilir çıkış gibi kullanarak osql yardımcı programı.

set showplan_text ve set showplan_all saklı yordamiçinde tarif edilemez; toplu işyalnızca deyimlerinde olmaları gerekir.

set showplan_all tarafından izlenen adımları temsil eden bir hiyerarşik ağaç formunda satırlar bir küme olarak bilgi verir SQL Server her deyimyürütür gibi işlemci sorgulama.Çıktıda yansıtılan her deyim metin ile birkaç satır yürütme adımları tarafından ayrıntılarla izler deyim, tek bir satır içerir.tablo sütunları çıkış içerdiğini gösterir.

Sütun adı

Açıklama

StmtText

plan_row tipinde olmayan satırlar için bu sütun metnini içerir Transact-SQL deyim.plan_row tipinde satırlar için bu sütun operasyonun açıklamasını içerir.Bu sütun , fiziksel işleç içeren ve isteğe bağlı olarak olabilir Ayrıca mantıksal işleçiçerir.Bu sütun , fiziksel işleçtarafından belirlenen bir açıklama olarak da gelebilir.Daha fazla bilgi için, bkz. Fiziksel ve mantıksal işleçleri başvurusu.

StmtId

' % S'ekstresinin deyim geçerli toplu işnumarası.

NodeId

Geçerli sorgudaki düğüm kimliği.

Parent

Ana adımı düğüm kimliği.

PhysicalOp

Düğüm algoritması fiziksel uygulama.Yalnızca türü plan_rows satırlar için.

LogicalOp

Bu düğümü gösteren ilişkisel cebirsel işleç .Yalnızca türü plan_rows satırlar için.

Bağımsız değişken

Yapılan işlem hakkında ek bilgiler sağlar.Bu sütun içeriği fiziksel işleçbağlıdır.

DefinedValues

Bu işleçtarafından sunulan değerleri virgülle ayrılmış bir listesini içerir.Bu değerler, geçerli sorgu (örneğin, seçim listesinde veya where yan tümce), veya bu sorguyu işlemek için sorgu işlemcisi tarafından tanıtılan iç değerleri yoksa hesaplanmış ifade olabilir.Bunlar tanımlı değerler sonra başvuru başka bir yerde bu sorgu içinde.Yalnızca türü plan_rows satırlar için.

EstimateRows

Bu işleçtarafından üretilen çıktı satır sayısı tahmini.Yalnızca türü plan_rows satırlar için.

EstimateIO

Tahmini I/o maliyet * bu işleçiçin.Yalnızca türü plan_rows satırlar için.

EstimateCPU

Tahmini cpu maliyet * bu işleçiçin.Yalnızca türü plan_rows satırlar için.

AvgRowSize

Bu işleçile geçirilen satır ortalama satır boyutu (bayt cinsinden) tahmini.

TotalSubtreeCost

Tahmini (toplu) maliyet * bu işlemi ve tüm alt işlemleri.

OutputList

Geçerli işlem tarafından öngörülen sütunları virgülle ayrılmış bir listesini içerir.

Uyarılar

Geçerli işlemi ile ilgili uyarı iletilerini, virgülle ayrılmış bir listesini içerir.dize "Hayır stats:()" uyarı iletilerini içerebilir sütun listesi ile.Bu uyarı iletisi, sorgu iyileştiricisi istatistikleri bu sütuntemel alan bir karar denedi, ancak hiçbiri kullanılabilir anlamına gelir.Sonuç olarak, sorgu iyileştiricisi verimsiz sorgu planı seçimde neden olmuş bir tahmin yapmak gerekiyordu.Oluşturma veya (daha verimli bir sorgu planı seçin sorgu iyileştiricisi yardımcı olan) sütun istatistikleri güncelleştirme hakkında daha fazla bilgi için bkz: update STATISTICS.Bu sütun , dize "Eksik birleştirme (tablolar ilgilendiren) bir birleştirmek birleştirmek yüklemi olmadan yer alıyor yani YÜKLEMİ", isteğe bağlı olarak içerebilir.Yanlışlıkla bir birleştirmek yüklemi bırakarak çalıştırmak beklenenden daha uzun sürer ve bir çok büyük sonuç kümesidöndüren bir sorgu neden olabilir.Bu uyarı varsa, birleştirmek yüklemi yokluğunda kasıtlı olduğunu doğrulayın.

Tür

Düğüm türü.Her sorgu üst düğümü için bu, Transact-SQL deyim türü (örneğin, select, INSERT, execute vb.).Yürütme planları gösteren alt düğümler, plan_row türüdür.

Paralel

0 = İşlecini paralel olarak çalışmıyor.

1 = İşleci paralel olarak çalışıyor.

EstimateExecutions

Tahmini sayısı geçerli sorguyu çalıştırırken bu işleç yürütülür.

* Maliyet Birim dahili bir saat, duvar saati saatdeğil ölçüm üzerinde temel alır.Bunlar bir plana diğer planları karşılaştırıldığında göreli maliyetini belirlemek için kullanılır.

İzinler

set showplan_all kullanmak için hangi set showplan_all deyimlerini yürütüldüğünde yürütmek için yeterli izinlere sahip ve başvurulan nesneleri içeren tüm veritabanları için showplan izninizin olması gerekir.

select, INSERT, update, delete, exec için stored_procedureve exec user_defined_function kullanıcı gerekir Showplan üretmek için ifadeleri:

  • yürütmek için uygun izinlere sahip Transact-SQL ifadeleri.

  • Tarafından başvurulan nesneleri içeren tüm veritabanları üzerinde showplan iznine sahip Transact-SQL deyimleri gibi tablolar, görünümler ve benzeri.

Tüm diğer deyimleri DDL, kullanımı gibi için database_name, set, declare, dinamik SQLvb., yalnızca uygun izinleri yürütmek Transact-SQL ifadeleri gerekiyor.

Daha fazla bilgi için, bkz. Showplan güvenlik ve showplan izin ve Transact-SQL toplu işlemleri.

Örnekler

İzleyen iki deyim set showplan_all biçimini göstermek için kullanın SQL Server çözümler ve sorguları dizinler kullanımını en iyi duruma getirir

İlk sorgunun where yan tümce dizinlenmiş bir sütuneşittir karşılaştırma işleç (=) kullanır.Kümelenmiş dizin ara değer bu sonuçlar LogicalOp sütun ve dizin içinde adını bağımsız değişkeni sütun.

İkinci sorgunun where yan tümcetümcesinde LIKE işleç kullanır.Bu zorlar SQL Server kümelenmiş dizin tarama kullanmak ve verileri bulmak için karşılayan where yan tümce koşul.Kümelenmiş dizin tarama değerinde bu sonuçlar LogicalOp sütun dizinde adını bağımsız değişkeni sütunve filtre değeri LogicalOp where yan tümce koşulsütun bağımsız değişkenisütun.

Değerler EstimateRows ve TotalSubtreeCost sütunlar çok daha hızlı işlenir ve dizinlenmemiş sorgu daha az kaynak kullanır olduğunu gösteren ilk dizinlenmiş sorgu için daha küçük.

USE AdventureWorks2008R2;
GO
SET SHOWPLAN_ALL ON;
GO
-- First query.
SELECT BusinessEntityID 
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, EmergencyContactID 
FROM HumanResources.Employee
WHERE EmergencyContactID LIKE '1%';
GO
SET SHOWPLAN_ALL OFF;
GO