Aracılığıyla paylaş


set showplan_text (Transact-SQL)

Microsoft neden olan SQL Server yürütmekiçin değil Transact-SQL ifadeleri.Bunun yerine, SQL Server ifadeleri nasıl çalıştırılır hakkında ayrıntılı bilgi verir.

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

Sözdizimi

SET SHOWPLAN_TEXT { ON | OFF }

Açıklamalar

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

set showplan_text eder, olduğunda SQL Server her yürütme bilgilerini döndürür Transact-SQL deyim yürütme it. olmadanBu seçeneği küme , sonra tüm ilgili bilgileri execution plan sonraki SQL Server kadar seçenek, aygıtlarım küme ifadeleri döndürdüset showplan_text eder, iken Örneğin, create table deyim yürütülmeden SQL Server hata iletisi belirtilen tablo yok kullanıcı bildiren o aynı tablo ile ilgili bir sonraki select deyim döndürür.Bu nedenle bu tablo sonraki başvurular başarısız.set showplan_text, kapalı olduğunda SQL Server yürütür deyimleri oluşturma bir rapor ile yürütme planı bilgileri.

set showplan_text, Microsoft Win32 komut istemi uygulamalar için okunabilir çıkış gibi dönmek için tasarlanmıştır osql yardımcı programı.set showplan_all çıktısı işlemek için tasarlanmış programlar ile kullanılması düşünülen daha ayrıntılı bir çıkış verir.

set showplan_text ve set showplan_all saklı yordambelirtilemez.toplu işyalnızca deyimlerinde olmaları gerekir.

set showplan_text 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ütun çı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çeren 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.Fiziksel işleçleri hakkında daha fazla bilgi için bkz: bağımsız değişkeni sütun set showplan_all (Transact-SQL).

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

İzinler

set showplan_text kullanmak için hangi set showplan_text 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.

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

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

Bu örnek, dizinler tarafından nasıl kullanıldığını gösterir SQL Server gibi işler deyimleri.

Bir dizini kullanarak sorgudur:

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

İşte sonuç kümesi:

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

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

Dizin kullanmayan sorgu aşağıdadır:

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

İşte sonuç kümesi:

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

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