Share via


küme SHOWPLAN_TEXT (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.

Topic link iconTransact-SQL sözdizimi kuralları

SET SHOWPLAN_TEXT { ON | OFF }

Remarks

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

küme SHOWPLAN_TEXT, AÇıK olduğunda SQL Server Her yürütme bilgi verir. Transact-SQL yeniden yürütme olmadan deyim'ı tıklatın. Sonra bu seçeneği yürütme planı bilgi ON, tüm sonraki ayarlandı SQL Server ifadeleri döndürülen kadar bu seçeneği KAPALı olarak küme. Örneğin, küme SHOWPLAN_TEXT, 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ı 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_TEXT, KAPALı olduğunda SQL Server deyimi yürütme planı bilgileri içeren bir rapor oluşturmadan çalıştırır.

küme SHOWPLAN_TEXT okunabilir bir çıktı Microsoft Win32 komut istemi istemini uygulamalar gibi dönmek amaçlanır Osql yardımcı programı.küme SHOWPLAN_ALL çıktısı işlemek için tasarlanmış programları ile kullanılmak üzere tasarlanmıştır, ayrıntılı çıkış verir.

Bir saklı yordam, küme SHOWPLAN_TEXT ve SHOWPLAN_ALL küme belirtilemez.toplu iş iş iş yalnızca tablolarda olmaları gerekir.

küme SHOWPLAN_TEXT 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 gösterir sütun, çıkış'ı içerir.

Sütun adı

Açıklama

StmtText

PLAN_ROW türü olan satır metin bu sütun 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 operatörü tarafından belirlenen bir açıklama arkasından.Fiziksel işleçleri hakkında daha fazla bilgi için bkz: Bağımsız değişken sütunundaküme SHOWPLAN_ALL (Transact-SQL).

gösterim planı çıktısında görülen fiziksel ve mantıksal işleçleri hakkında daha fazla bilgi için bkz: Mantıksal ve fiziksel işletmenleri başvurusu

İzinler

küme SHOWPLAN_TEXT kullanmak için küme SHOWPLAN_TEXT 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.

  • Transact-SQL deyimlerini, tablo, görünüm vb. gibi) tarafından başvurulan bir nesne içeren tüm veritabanlarının gösterim planı izni vardır.

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

Bu örnek, dizin tarafından nasıl kullanıldığını gösterir. SQL Server ifadeler de olarak işler.

Bir dizini kullanarak sorgudur:

USE AdventureWorks;
GO
SET SHOWPLAN_TEXT ON;
GO
SELECT *
FROM Production.Product 
WHERE ProductID = 905;
GO
SET SHOWPLAN_TEXT OFF;
GO

sonuç kümesi aşağıdadır:

StmtText                                           
---------------------------------------------------
SELECT *
FROM Production.Product 
WHERE ProductID = 905; 

StmtText                                                                                                                                                                                      
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Clustered Index Seek(OBJECT:([AdventureWorks].[Production].[Product].[PK_Product_ProductID]), SEEK:([AdventureWorks].[Production].[Product].[ProductID]=CONVERT_IMPLICIT(int,[@1],0)) ORDERED FORWARD) 

Dizini kullanarak sorguyu aşağıdadır:

USE AdventureWorks;
GO
SET SHOWPLAN_TEXT ON;
GO
SELECT *
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET SHOWPLAN_TEXT OFF;
GO

sonuç kümesi aşağıdadır:

StmtText                                                                
------------------------------------------------------------------------
SELECT *
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00; 

StmtText                                                                                                                                                                                                
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Clustered Index Scan(OBJECT:([AdventureWorks].[Production].[ProductCostHistory].[PK_ProductCostHistory_ProductCostID]), WHERE:([AdventureWorks].[Production].[ProductCostHistory].[StandardCost]<[@1]))