set showplan_text (Transact-sql)

Neden SQL Serverdeğil çalıştırmak için Transact-SQLdeyimleri. Bunun yerine, SQL Serveriyi tanımlanmış bir xml belgesi şeklinde yürütülen deyimleri nasıl gidiyorsun hakkında ayrıntılı bilgi döndürür

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

Sözdizimi

SET SHOWPLAN_XML { 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_xml on olduğunda SQL Server, yürütme olmadan her deyimi yürütme planı bilgileri verir ve Transact-SQLdeyimleri yürütüldü. Sonra bu seçeneği on, yürütme planı bilgileri sonraki tüm ayarlanır Transact-SQLdeyimleri kapalı seçeneği ayarlanıncaya kadar döndürülür Örneğin set showplan_xml on iken bir create table deyimi yürütüldüğünde, SQL Serversonraki bir select deyimi, aynı tablo; ilgili bir hata iletisi döndürür Belirtilen tablo yok. Bu nedenle, bu tabloya sonraki başvurular başarısız. set showplan_xml off, ne zaman SQL Serverrapor oluşturmadan deyimleri yürütür.

set showplan_xml çıktı olarak dönmek için tasarlanmıştır nvarchar(max)gibi uygulamalar için sqlcmdnerede xml çıktısı daha sonra diğer araçlar tarafından görüntülemek ve sorgu planı bilgileri işlemek için kullanılan bir yardımcı program,.

[!NOT]

Dinamik yönetimi görünümü sys.dm_exec_query_plan, set showplan xml içinde aynı bilgileri verir xmlveri türü. Bu bilgileri dönen sys.dm_exec_query_planquery_plan sütununda sys.dm_exec_query_plan. Daha fazla bilgi için, bkz. sys.dm_exec_query_plan (Transact-sql).

set showplan_xml içinde saklı bir yordam belirtilemez. Bu toplu tek ifadesi olmalıdır.

set showplan_xml bilgilerini xml belgeleri bir dizi olarak döndürür. Her toplu sonra set showplan_xml on deyimini çıktıda tarafından tek bir belgede yansıtılır. Her belge toplu iş yürütme adımları ayrıntılarını tarafından takip, deyimleri metin içeriyor. Belge dizinleri, tahmini maliyetler, satır numaralarını erişilen ve işleç türlerini, birleştirme sırasını, ve planları yürütme hakkında daha fazla bilgi gösterir.

set showplan_xml tarafından xml çıktısı olan Microsoft bilgisayardaki yerel bir dizine kurulum sırasında kopyalanır için xml şemasını içeren belgeyi SQL Serveryüklenir. Sürücüyü içeren bulunabilir SQL Serveryükleme dosyaları, at:

\Microsoft SQL Server\110\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

Showplan şema Ayrıca can be found at Bu siteyi.

[!NOT]

Eğer Fiili yürütme planı dahil seçilen SQL Server Management Studio, bu set seçenek xml Showplan çıktı üretmek değil. Açık Fiili yürütme planı dahil düğme kümesi bu seçeneği kullanmadan önce.

İzinler

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

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

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

Izleyin iki deyim set showplan_xml ayarları biçimini göstermek için kullanın SQL Serverçözümler ve sorgularda dizinler kullanımını en iyi duruma getirir.

İlk sorgunun where yan tümcesi dizine alınmış sütun üzerinde eşittir (=) karşılaştırma işlecini kullanır. İkinci sorgunun where yan tümcesinde LIKE işlecini kullanır. Bu SQL Serverbir Kümelenmiş dizin tarama ve where yan tümcesinde koşul toplantı veri bulmak. Değerleri EstimateRows ve EstimatedTotalSubtreeCost öznitelikleri için çok daha hızlı işlenir ve dizinli sorgu daha az kaynak kullanır gösteren ilk dizinlenmiş sorgu daha küçük.

USE AdventureWorks2012;
GO
SET SHOWPLAN_XML ON;
GO
-- First query.
SELECT BusinessEntityID 
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET SHOWPLAN_XML OFF;

USE AdventureWorks2012;
GO
SET SHOWPLAN_XML ON;
GO
-- First query.
SELECT BusinessEntityID 
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET SHOWPLAN_XML OFF;

Ayrıca bkz.

Başvuru

Deyimiyle (Transact-sql) bırak