İngilizce dilinde oku

Aracılığıyla paylaş


SET SHOWPLAN_XML (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse Analytics (yalnızca ayrılmış SQL havuzu)Microsoft FabricWarehouse'da SQL analiz uç noktası

SQL Server'ın Transact-SQL deyimlerini yürütmemesine neden olur. Bunun yerine SQL Server, deyimlerin iyi tanımlanmış bir XML belgesi biçiminde nasıl yürütüleceğini gösteren ayrıntılı bilgiler döndürür.

Doku Veri Ambarı ve SQL analiz uç noktasında SET SHOWPLAN_XML bir önizleme özelliğidir.

Transact-SQL söz dizimi kuralları

Sözdizimi

syntaxsql
SET SHOWPLAN_XML { ON | OFF }

Açıklamalar

SET SHOWPLAN_XML ayarı, ayrıştırma zamanında değil yürütme veya çalışma zamanında ayarlanır.

SET SHOWPLAN_XML ON olduğunda, SQL Server her deyimi yürütmeden her deyimin yürütme planı bilgilerini döndürür ve Transact-SQL deyimleri yürütülür. Bu seçenek AÇILDI olarak ayarlandıktan sonra, sonraki tüm Transact-SQL deyimleriyle ilgili yürütme planı bilgileri, seçenek KAPALI olarak ayarlanana kadar döndürülür. Örneğin, SET SHOWPLAN_XML AÇıKken CREATE TABLE deyimi yürütülürse, SQL Server aynı tabloyu içeren bir sonraki SELECT deyiminden bir hata iletisi döndürür; belirtilen tablo yok. Bu nedenle, bu tabloya yapılan sonraki başvurular başarısız olur. SET SHOWPLAN_XML KAPALI olduğunda, SQL Server bir rapor oluşturmadan deyimleri yürütür.

SET SHOWPLAN_XML, sqlcmd yardımcı programı gibi uygulamalar için nvarchar(max) olarak çıkış döndürmek üzere tasarlanmıştır; burada XML çıkışı sorgu planı bilgilerini görüntülemek ve işlemek için diğer araçlar tarafından daha sonra kullanılır.

Not

sys.dm_exec_query_plandinamik yönetim görünümü, xml veri türündeki SET SHOWPLAN XML ile aynı bilgileri döndürür. Bu bilgiler sys.dm_exec_query_planquery_plan sütunundan döndürülür. Daha fazla bilgi için bkz. sys.dm_exec_query_plan (Transact-SQL).

SET SHOWPLAN_XML saklı yordam içinde belirtilemez. Toplu iş içindeki tek deyim bu olmalıdır.

SET SHOWPLAN_XML bilgileri xml belgeleri kümesi olarak döndürür. SET SHOWPLAN_XML ON deyiminden sonraki her toplu iş tek bir belge tarafından çıktıya yansıtılır. Her belgede toplu iş içindeki deyimlerin metni ve ardından yürütme adımlarının ayrıntıları yer alır. Belgede tahmini maliyetler, satır sayısı, erişilen dizinler ve gerçekleştirilen işleç türleri, birleştirme sırası ve yürütme planları hakkında daha fazla bilgi gösterilir.

Not

SQL Server Management Studio'da Gerçek Yürütme Planı dahil seçilirse, bu SET seçeneği XML Showplan çıktısı üretmez. Bu SET seçeneğini kullanmadan önce Gerçek Yürütme Planı Ekle düğmesini temizleyin.

SSMS ve SET SHOWPLAN_XML aracılığıyla tahmini yürütme planları, Azure Synapse Analytics'teki ayrılmış SQL havuzları (eski adı SQL DW) ve ayrılmış SQL havuzları için kullanılabilir. Azure Synapse Analytics'te ayrılmış SQL havuzları (eski adı SQL DW) ve ayrılmış SQL havuzları için gerçek bir yürütme planı almak için farklı komutlar vardır. Daha fazla bilgi için bkz. DMV'leri kullanarak Azure Synapse Analytics ayrılmış SQL havuzu iş yükünüzü izleme.

SHOWPLAN çıkışının konumu

SET SHOWPLAN_XML xml çıkışı için XML şemasını içeren belge, kurulum sırasında Microsoft SQL Server'ın yüklü olduğu bilgisayardaki yerel bir dizine kopyalanır. Belge, SQL Server yükleme dosyalarını içeren sürücüde, aşağıdakine benzer bir yolda bulunabilir:

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

Yukarıdaki yolda, düğüm 130\ SQL Server 2016 tarafından kullanılır. 130 sayısı, 13 olan SELECT @@VERSIONtarafından döndürülen değerin ilk düğümünden türetilir. SQL Server 2017'de, @@VERSION değerinin ilk düğümü 14 olduğundan yol 140\kullanır. SQL Server 2019,@@VERSION ilk değer 15'tir. SQL Server 2022,@@VERSION ilk değer 16'dır.

Showplan Şeması,Microsoft SQL Server XML Şemaları'nda da bulunabilir.

İzinler

SET SHOWPLAN_XML kullanmak için, SET SHOWPLAN_XML yürütülür deyimlerini yürütmek için yeterli izinlere sahip olmanız ve başvurulan nesneleri içeren tüm veritabanları için SHOWPLAN iznine sahip olmanız gerekir.

SELECT, INSERT, UPDATE, DELETE, EXEC *stored_procedure*ve EXEC *user_defined_function* deyimleri için kullanıcının yapması gereken bir Showplan oluşturmak için:

  • Transact-SQL deyimlerini yürütmek için uygun izinlere sahip olun.

  • tablolar, görünümler vb. Transact-SQL deyimleri tarafından başvurulan nesneleri içeren tüm veritabanlarında SHOWPLAN iznine sahip olun.

DDL, USE *database_name*, SET, DECLARE, dinamik SQL gibi diğer tüm deyimler için yalnızca Transact-SQL deyimlerini yürütmek için uygun izinler gereklidir.

Örnekler

Aşağıdaki iki deyim, SQL Server'ın sorgularda dizin kullanımını analiz etme ve iyileştirme şeklini göstermek için SET SHOWPLAN_XML ayarlarını kullanır.

İlk sorgu, dizinli bir sütundaki WHERE yan tümcesinde Eşittir karşılaştırma işlecini (=) kullanır. İkinci sorgu WHERE yan tümcesinde LIKE işlecini kullanır. Bu, SQL Server'ı kümelenmiş dizin taraması kullanmaya ve WHERE yan tümcesi koşuluna uygun verileri bulmaya zorlar. EstimateRows ve EstimatedTotalSubtreeCost özniteliklerindeki değerler, dizine alınan ilk sorgu için daha küçüktür, bu da çok daha hızlı işlendiğini ve dizine eklenmemiş sorgudan daha az kaynak kullandığını gösterir.

SQL
USE AdventureWorks2022;
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;

Sonraki adımlar