set showplan_text (Transact-sql)

Neden Microsoft SQL Serverdeğil çalıştırmak için Transact-SQLdeyimleri. Bunun yerine, SQL Serverdeyimleri nasıl yürütülür hakkında ayrıntılı bilgi verir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

SET SHOWPLAN_TEXT { ON | OFF }

Açıklamalar

set showplan_text ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.

set showplan_text on olduğunda SQL Serverher yürütme bilgi verir Transact-SQLgörüneceği şekilde yürütme olmadan deyimi Sonra bu seçeneği on, yürütme planı bilgileri sonraki tüm ayarlanır SQL Serverdeyimleri kapalı seçeneği ayarlanıncaya kadar döndürülür Örneğin set showplan_text on iken bir create table deyimi yürütüldüğünde, SQL Serversonraki bir select deyimi içeren bu aynı tabloda belirtilen tablo yok kullanıcıya bildiren bir hata iletisi döndürür. Bu nedenle, bu tabloya sonraki başvurular başarısız. set showplan_text off, ne zaman SQL Serverdeyimleri yürütme planı bilgileri içeren bir rapor oluşturmadan çalıştırır.

set showplan_text, Microsoft Win32 komut istemi uygulamalarda okunabilir çıkış gibi dönmek için tasarlanmıştır osqlyarar. set showplan_all çıktısı işlemek için tasarlanmış programlar ile kullanılması hedeflenen daha ayrıntılı bir çıkış verir.

set showplan_text ve set showplan_all bir saklı yordam belirtilemez. Toplu işlem yalnızca deyimlerinde olmaları gerekir.

set showplan_text bilgi tarafından alınan adımları temsil eden bir hiyerarşik ağaç formu bir satır kümesi döndürür SQL Serverher deyimi yürütür işlemci sorgulamak. Çıktıda yansıyan her deyimi yürütme adımları ayrıntılarıyla birkaç satır tarafından takip deyimi metin içeren tek bir satır içerir. Tablo sütun çıktı içerdiğini gösterir.

Sütun adı

Açıklama

StmtText

Hangi tip plan_row olmayan satırlar için bu sütun metni içeren Transact-SQLdeyimi. plan_row türündeki satırlar için işlem açıklaması için bu sütun içerir. Bu sütun içeren fiziksel bir işleci ve isteğe bağlı olabilir ayrıca mantıksal işleç içerir. Bu sütun tarafından fiziksel bir işleci tarafından belirlenen bir açıklama da takip edilebilir. Fiziksel işleçleri hakkında daha fazla bilgi için bkz: bağımsız değişkeni sütununda set showplan_text (Transact-sql).

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

İzinler

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

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

  • Çalıştırmak için uygun izinlere sahip Transact-SQLdeyimleri.

  • 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 gibi deyimleri ddl, kullanım için database_name, set, declare, dinamik sql ve benzerleri, yalnızca yürütmek için uygun izinleri Transact-SQLdeyimleri gerekiyor.

Örnekler

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

Bir dizini kullanarak sorgudur:

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

USE AdventureWorks2012;
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:([AdventureWorks2012].[Production].[Product].[PK_Product_ProductID]), SEEK:([AdventureWorks2012].[Production].[Product].[ProductID]=CONVERT_IMPLICIT(int,[@1],0)) ORDERED FORWARD) 

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

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

Bir dizini kullanarak sorgu aşağıdadır:

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

USE AdventureWorks2012;
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:([AdventureWorks2012].[Production].[ProductCostHistory].[PK_ProductCostHistory_ProductCostID]), WHERE:([AdventureWorks2012].[Production].[ProductCostHistory].[StandardCost]<[@1]))

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

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

Ayrıca bkz.

Başvuru

İşleçler (Transact-sql)

Deyimiyle (Transact-sql) bırak

set showplan_text (Transact-sql)