Aracılığıyla paylaş


küme SHOWPLAN_ALL (Transact-SQL)

Neden Microsoft SQL Server değil yürütmek Transact-SQL ifadeler. Bunun yerine, SQL Server ifadeleri nasıl çalıştırılır hakkında ayrıntılı bilgi verir ve bu raporları için kaynak gereksinimlerini tahmin sağlar.

Topic link iconTransact-SQL sözdizimi kuralları

SET SHOWPLAN_ALL { ON | OFF }

Remarks

küme SHOWPLAN_ALL ayarını ayarlayın yürütmek veya saat ve çözümleme saat değil.

küme SHOWPLAN_ALL, AÇıK olduğunda SQL Server çalıştırmadan, her tablo için yürütme bilgileri verir ve Transact-SQL ifadeleri yürütülür. Bu seçenek sonra bilgi ON, tüm sonraki küme Transact-SQL seçeneği KAPALı ayarlamadığınız ifadeleri döndürülür. Örneğin, küme SHOWPLAN_ALL, AÇıK olduğu sırada bir CREATE TABLE deyim yürütüldüğünde SQL Server bir hata iletisi, belirtilen tablo yok kullanıcılar bildiren, aynı o tabloyu içeren bir sonraki deyim döndürür. Bu nedenle, bu tablonun sonraki başvurular başarısız.küme SHOWPLAN_ALL, KAPALı olduğunda SQL Server ifadeleri, raporu oluşturmadan çalıştırır.

küme SHOWPLAN_ALL çıktısı işlemek için yazılan uygulamalar tarafından kullanılması amaçlanmıştır.komut istemi istemini uygulamaları için Microsoft Win32 okunabilir bir çıktı gibi geri dönmek için küme SHOWPLAN_TEXT kullanın Osql yardımcı programı.

küme SHOWPLAN_TEXT ve küme SHOWPLAN_ALL içinde saklı bir yordam tarif edilemez; tek bir toplu iş tablolarda olması gerekir.

küme SHOWPLAN_ALL bilgi tarafından gerçekleştirilen adımları temsil eden bir hiyerarşik ağaç oluşturan satır kümesi olarak döndürür SQL Server Query processor olarak her deyim yürütür. Çıktıda yansıtılması her deyim, deyimin çeşitli satırlarla yürütme adımları tarafından Ayrıntıları'nı ve ardından metinle birlikte tek bir satır içerir.Tablo sütunları, çıktı içerdiğini gösterir.

Sütun adı

Açıklama

StmtText

PLAN_ROW tipinde olmayan satırlar için bu sütun, metni içerir Transact-SQL deyim. Bu sütun, Tür PLAN_ROW satırlar için operasyonun açıklamasını içerir.Bu sütun, fiziksel işleç içerir ve isteğe bağlı olabilir de mantıksal işleç içerir.Bu sütun da fiziksel belirlenen bir açıklama tarafından izlenmesi işleç.Daha fazla bilgi için bkz:Mantıksal ve fiziksel işletmenleri başvurusu.

StmtId

Tabloda geçerli toplu iş numarası.

NodeId

Geçerli sorgudaki düğüm KIMLIĞI.

Parent

Üst adımının düğüm KIMLIĞI.

PhysicalOp

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

LogicalOp

Ilişkisel bir cebirsel işleç, bu düğümü temsil eder.Yalnızca PLAN_ROWS türü satırlar için.

Bağımsız değişken

Gerçekleştirilmekte olan işlem hakkında ek bilgi sağlar.Bu sütunun içeriğini fiziksel işleç bağlıdır.

DefinedValues

Bu işleç ile sunulan değerleri virgülle ayrılmış bir listesini içerir.Bu değerler, geçerli sorgudaki (örneğin, SELECT listesinde veya WHERE yan tümce) veya bu sorguyu işlemek için sorgu işlemcisi tarafından tanıtılan iç değerleri içinde olan, hesaplanan ifadeler olabilir.Bunlar, tanımlanan değerleri daha sonra başka bir yerinde bu sorgu içinde başvuru.Yalnızca PLAN_ROWS türü satırlar için.

EstimateRows

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

EstimateIO

G/Ç maliyet * bu tahmini işleç.Yalnızca PLAN_ROWS türü satırlar için.

EstimateCPU

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

AvgRowSize

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

TotalSubtreeCost

Tahmini (toplam) 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 operasyon için ilgili uyarı iletilerinin virgülle ayrılmış bir listesini içerir.Uyarı iletileri, "HAYıR STATS:()" dizesi içerebilir sütun listesi ile. Bu uyarı iletisi sorgu iyileştiricisi bu sütun için istatistikler temel alan bir karar denedi, ancak hiçbiri bulunmamaktaydı anlamına gelir.Sonuç olarak, bir verimsiz bir sorgu planını seçimdeki olmuş bir tahmin yapmak sorgu iyileştiricisi sahipti.Daha fazla bilgi için bkz: ilgili oluşturma veya (daha verimli bir sorgu planını seçin sorgu iyileştiricisi yardımcı olan) sütun istatistiklerinin güncelleştiriliyor İSTATİSTİKLERİ GÜNCELLEŞTİRME.Bu sütun, isteğe bağlı olarak "EKSIK birleştirmek (tablolar içeren) bir birleştirmek bir birleştirmek koşulunu olmadan yer alıyor, yani YÜKLEMI", dize içerebilir.Sorguda beklenenden çalıştırmak için daha uzun sürer ve bir çok büyük bir sonuç kümesi verir, yanlışlıkla bir birleştirmek koşulunu bırakarak neden olabilir.Bu uyarı varsa, bir birleştirmek koşulunu, devamsızlık bilerek 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, yürütmek vb.). Yürütme planları gösteren alt düğümler PLAN_ROW türdür.

Paralel

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

1 = işleç paralel olarak çalışıyor.

EstimateExecutions

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

* Maliyet, birim üzerinde bir iç saati, değilse duvar saat ölçüsünün temel alır.Bunlar, bir plana diğer planlar karşılaştırılan göreli maliyetini belirlemek için kullanılır.

İzinler

küme SHOWPLAN_ALL kullanmak için küme SHOWPLAN_ALL yürütüldüğü ifadeyi çalıştırmak için yeterli izinlere sahip ve başvurulan nesne içeren tüm veritabanları için gösterim planı izniniz olmalıdır.

SELECT, INSERT, UPDATE veya DELETE ÇALıŞTıRıLAMADı için stored_procedureve ÇALıŞTıRıLAMADı user_defined_function bir kullanıcı gösterim planı üretmek için ifadeler, gerekir:

  • Yürütmek için uygun izinlere sahip Transact-SQL ifadeler.

  • Nesne tarafından başvuruda bulunulan içeren tüm veritabanları üzerinde gösterim planı izninizin Transact-SQL ifadeleri, tablolar, görünümler vb. gibi.

Tüm diğer tablolar için DDL, USE gibi database_nameDECLARE dinamik SQL ve benzeri yürütmek için yalnızca uygun izinlere küme Transact-SQL ifadeleri gereklidir.

Daha fazla bilgi için bkz: gösterim planı güvenlik ve gösterim planı izin ve Transact-SQL toplu işlemleri.

Örnekler

Izleyen iki ifadeyi biçimini göstermek için bu küme SHOWPLAN_ALL ayarları kullanın. SQL Server çözümler ve sorgularda dizinleri kullanımını en iyi duruma getirir.

Ilk sorgunun WHERE yan tümce dizinlenmiş bir sütunda eşit karşılaştırma işleç (=) kullanır.Bu küme için dizini ara değer sonuçlanır LogicalOp sütun ve dizinin adıBağımsız değişken sütun.

Ikinci sorguyu, WHERE yan tümcesinde LIKE işlecini kullanır.Bu zorlar. SQL Server Kümelenmiş dizin tarama kullanın ve WHERE yan tümce koşulu karşılayan verileri bulmak için. Bu küme, dizin tarama değerinde olur LogicalOp dizinin adı sütunBağımsız değişken sütun ve süz değeri LogicalOp WHERE yan tümcesinde koşul sütunBağımsız değişken sütun.

Değerler EstimateRows and the TotalSubtreeCost sütun çok daha hızlı işlenir ve dizinlenmemiş sorgu daha az kaynak kullanır ilk dizinlenmiş sorgu daha küçüktür.

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