SET SET STATISTICS XML (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Microsoft SQL Server'ın Transact-SQL ifadeleri çalıştırmasına ve ifadelerin nasıl yürütüldüğüne dair ayrıntılı bilgileri iyi tanımlanmış bir XML belgesi şeklinde üretmesine neden olur.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
SET STATISTICS XML { ON | OFF }  

Açıklamalar

Ayarları SETSET STATISTICS XML işleme veya çalıştırma zamanında ayarlanır, ayrıştırma zamanında değil.

ON'da, SETSET STATISTICS XML SQL Server her ifadeyi çalıştırdıktan sonra çalıştırma bilgilerini döndürür. Bu seçenek ON'a ayarlandıktan sonra, sonraki tüm Transact-SQL ifadeleriyle ilgili bilgiler geri dönüyor ve seçenek KAPALI olarak ayarlanır. Unutmayın ki, SETSET STATISTICS XML bir grupta tek ifade olmak zorunda değilsiniz.

SET SET STATISTICS XML Sqlcmd gibi uygulamalar için nvarchar(max) olarak çıktı döndürür; burada XML çıktısı daha sonra diğer araçlar tarafından sorgu planı bilgisini görüntülemek ve işlemek için kullanılır.

SET SET STATISTICS XML bilgileri XML belgeleri kümesi olarak döndürür. ON ifadesinden SETSET STATISTICS XML sonraki her ifade, çıktıda tek bir belge tarafından yansıtılır. Her belge, ifadenin metnini ve ardından yürütme adımlarının detaylarını içerir. Çıktı, maliyetler, erişilen indeksler ve gerçekleştirilen işlem türleri, birleştirme sırası, fiziksel bir işlemin kaç kez yapıldığı, her fiziksel operatörün ürettiği satır sayısı ve daha fazlası gibi çalışma zamanı bilgilerini gösterir.

XML çıktısı SETSET STATISTICS XML için XML şemasını içeren belge, kurulum sırasında Microsoft SQL Server'ın kurulu olduğu bilgisayardaki yerel bir dizine kopyalanır. SQL Server kurulum dosyalarını içeren sürücüde şu adreste bulunabilir:

\Microsoft SQL Server\100\Tools\binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

Showplan Şeması ayrıca bu web sitesinde bulunabilir.

SET SET STATISTICS PROFILE ve SETSET STATISTICS XML birbirlerinin karşıtlığıdır. İlki metin çıktısı üretir; ikincisi XML çıktısı üretir. SQL Server'ın gelecekteki sürümlerinde, yeni sorgu yürütme planı bilgileri yalnızca ifade SETSET STATISTICS XML aracılığıyla gösterilecek, ifadede SETSET STATISTICS PROFILE değil.

Uyarı

SQL Server Management Studio'da Gerçek Yürütme Planını Dahil Et seçilirse, bu SET seçenek XML Showplan çıktısı üretmez. Bu seçeneği kullanmadan SETönce Gerçek Uygulama Planını Dahil Et butonunu temizleyin.

Permissions

Çıktıyı kullanmak SETSET STATISTICS XML ve görüntülemek için kullanıcıların aşağıdaki izinlere sahip olması gerekir:

  • Transact-SQL ifadelerini çalıştırmak için uygun izinler.

  • Transact-SQL ifadeleriyle referans verilen nesneleri içeren tüm veritabanları için SHOWPLAN izni.

Sonuç seti üretmeyen STATISTICS XML Transact-SQL ifadeler için, Transact-SQL ifadelerini çalıştırmak için yalnızca uygun izinler gereklidir. Sonuç setleri üreten Transact-SQL ilerler STATISTICS XML için, hem Transact-SQL özet yürütme izni hem de SHOWPLAN izni için kontrol edilir, aksi takdirde Transact-SQL özet uygulaması iptal edilir ve Showplan bilgisi oluşturulmaz.

Örnekler

Takip eden iki ifade, SQL Server'ın sorgularda indeks kullanımını nasıl analiz ettiğini ve optimize ettiğini göstermek için SETSET STATISTICS XML ayarları kullanır. İlk sorgu, indeksli bir sütundaki WHERE maddesindeki Equals (=) karşılaştırma operatörünü kullanır. İkinci sorgu WHERE yan tümcesinde LIKE işlecini kullanır. Bu durum, SQL Server'ı WHERE cümlesi koşulunu karşılayan verileri bulmak için kümelenmiş bir indeks taraması kullanmaya zorlar. EstimateRows ve EstimatedTotalSubtreeCost niteliklerindeki değerler, ilk indekslenmiş sorgu için daha küçüktür; bu da sorgunun endekslenmemiş sorguya göre çok daha hızlı işlendiğini ve daha az kaynak kullandığını gösterir.

USE AdventureWorks2022;  
GO  
SET STATISTICS 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 STATISTICS XML OFF;  
GO  

Ayrıca Bkz.

SET SHOWPLAN_XML (Transact-SQL)
sqlcmd Yardımcı Programı