Aracılığıyla paylaş


SQL veritabanlarında akıllı sorgu işleme

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

Akıllı sorgu işleme (IQP) özellik ailesi, benimsemek için en az uygulama çabasıyla mevcut iş yüklerinin performansını geliştiren geniş kapsamlı etkiye sahip özellikler içerir. Aşağıdaki grafikte, IQP özelliklerinin ailesi ve SQL Server için ilk tanıtıldıkları zaman ayrıntılarıyla gösterilmiştir. Tüm IQP özellikleri Azure SQL Managed Instance ve Azure SQL Database kullanılabilir. Bazı özellikler veritabanının uyumluluk düzeyine bağlıdır.

Akıllı sorgu işleme ailesindeki özellikleri ve bu özelliklerin SQL Server’da ne zaman tanıtıldığını temsil eden diyagram.

Akıllı sorgu işlemeye genel bakış için bu videoyu izleyin:

 

Akıllı sorgu işleme (IQP) özelliklerinin tanıtımları ve örnek kodu için bkz. GitHub örnek deposu.

Veritabanı için geçerli veritabanı uyumluluk düzeyini etkinleştirerek iş yüklerini akıllı sorgu işleme için otomatik olarak uygun hale getirebilirsiniz. Bunu Transact-SQL kullanarak ayarlayabilirsiniz. Örneğin:

ALTER DATABASE [WideWorldImportersDW]
    SET COMPATIBILITY_LEVEL = 170;

Aşağıdaki tabloda tüm akıllı sorgu işleme özelliklerinin yanı sıra veritabanı uyumluluk düzeyine yönelik gereksinimleri de ayrıntılı olarak açıklandı. Sürüm notları ve daha ayrıntılı açıklamalar da dahil olmak üzere tüm IQP özellikleri hakkında ayrıntılı bilgi için bkz. Akıllı sorgu işleme özellikleri ayrıntılı olarak.

Azure SQL Database ve SQL Server 2025 için IQP özellikleri

IQP Özelliği Azure SQL Database'da desteklenir SQL Server 2025'te (17.x) desteklenir Description
İsteğe bağlı parametre planı iyileştirme (OPPO) Evet, veritabanı uyumluluk düzeyi 170'den başlayarak Evet, veritabanı uyumluluk düzeyi 170 olan SQL Server 2025 (17.x) ile başlayarak Tek bir deyimden birden çok plan oluşturan Parametreye Duyarlı Plan İyileştirme (PSPO) geliştirmesiyle tanıtılan uyarlamalı plan iyileştirme (Multiplan) altyapısından yararlanıyor. Özellik, bir parametrenin NULL OR NOT NULLolup olmadığına bağlı olarak çalışma zamanında daha uygun bir plan seçebilir ve bu da bu tür sorgu desenleri için varsayılan olarak en iyi olmayan performansa sahip sorgular için performansı artırır.
İfadeler için kardinalite tahmini (CE) geri bildirimi Evet, veritabanı uyumluluk düzeyi 170'den başlayarak Evet, veritabanı uyumluluk düzeyi 160 olan SQL Server 2025 (17.x) ile başlayarak Önceki yürütmelerden ders alarak ve bu ifadelerin gelecekteki yürütmelerine uygun CE modeli seçeneklerini otomatik olarak uygulayarak sorgular arasında yinelenen ifadeler için kardinalite tahminlerini geliştirmek için CE geri bildirimini genişletir.
OPTIMIZED_SP_EXECUTESQL Yes Evet, SQL Server 2025 (17.x) ile başlayarak Derleme fırtınalarının etkisini etkili bir şekilde azaltın. Derleme fırtınası, çok sayıda sorgunun aynı anda derlendiği ve performans sorunlarına ve kaynak çekişmesiyle sonuçlanan bir durumdur. Bu özelliği etkinleştirin, böylece sp_executesql çağrıların derleme perspektifinden saklı yordamlar ve tetikleyiciler gibi nesneler gibi davranmasına izin verin.

Azure SQL Database ve SQL Server 2022 için IQP özellikleri

IQP Özelliği Azure SQL Database'da desteklenir SQL Server 2022 (16.x) ve sonraki sürümlerde desteklenir Description
Uyarlamalı Birleşimler (Toplu İş Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Evet, SQL Server 2017'den (14.x) başlayarak veritabanı uyumluluk düzeyi 140 Uyarlamalı birleşimler, çalışma zamanı sırasında gerçek giriş satırlarına göre dinamik olarak bir birleştirme türü seçer.
Yaklaşık Sayı Ayrı Yes Evet, SQL Server 2019'dan (15.x) itibaren Yüksek performans ile düşük bellek tüketimi avantajıyla büyük veri senaryoları için tahminî COUNT DISTINCT sağlayın.
Yaklaşık Yüzdebirlik Evet, veritabanı uyumluluk düzeyi 110'dan başlayarak Evet, uyumluluk düzeyi 110 olan SQL Server 2022'den (16.x) başlayarak Yaklaşık yüzdebirlik toplama işlevlerini kullanarak hızlı kararlar alınmasına yardımcı olmak için kabul edilebilir derece tabanlı hata sınırlarına sahip büyük bir veri kümesinin yüzdebirlik dilimlerini hızla hesaplayın.
Rowstore'da Batch Modu Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Evet, SQL Server 2019'dan (15.x) başlayarak uyumluluk düzeyi 150 Columnstore dizinlerine gerek kalmadan CPU'ya bağlı ilişkisel DW iş yükleri için toplu iş modu sağlayın.
Kardinalite tahmini (CE) geri bildirimi Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Evet, uyumluluk düzeyi 160 olan SQL Server 2022'den (16.x) başlayarak Verimsiz CE varsayımlarının düşük sorgu performansına neden olduğu iş yüklerini iyileştirmek için yinelenen sorgular için kardinalite tahminlerini otomatik olarak ayarlar. CE geri bildirimi, sorgu yürütme planı kalitesini geliştirmek için belirli bir sorguya ve veri dağıtımına daha uygun bir model varsayımı belirler ve kullanır.
Paralellik derecesi (DOP) geri bildirim Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Verimsiz paralelliğin performans sorunlarına neden olabileceği iş yükleri için iyileştirme yapmak üzere yinelenen sorgular için paralellik derecesini otomatik olarak ayarlar. Query Store etkinleştirilmesini gerektirir.
Aralıklı Yürütme Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Evet, SQL Server 2017'den (14.x) başlayarak veritabanı uyumluluk düzeyi 140 Sabit bir tahmin yerine, ilk derlemede karşılaşılan çok deyimli tablo değerli fonksiyonun gerçek kardinalitesini kullanır.
Bellek tahsis geri bildirimi (Batch Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Evet, SQL Server 2017'den (14.x) başlayarak veritabanı uyumluluk düzeyi 140 Toplu iş modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Bellek tahsis geri bildirimi (Satır Modu) Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Evet, veritabanı uyumluluk düzeyi 150 olan SQL Server 2019(15.x) ile başlayarak Satır modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Bellek verme geri bildirimi (Yüzdebirlik) Evet, tüm veritabanlarında etkin Evet, veritabanı uyumluluk düzeyi 140 olan SQL Server 2022 (16.x)) ile başlayarak Geçmiş sorgu yürütmeyi dahil ederek, bellek verme geri bildiriminin mevcut sınırlamalarını müdahale etmeden iyileştirir.
Memory Grant Geri Bildirimi Kalıcılığı Evet, tüm veritabanlarında etkin Evet, veritabanı uyumluluk düzeyi 140 olan SQL Server 2022 (16.x)) ile başlayarak Bellek tahsisi geri bildirimini kalıcılaştıran yeni işlevler sağlar. veritabanı için ve READ_WRITE modunda Query Store etkinleştirilmesini gerektirir.
CE geri bildirimi kalıcılığı Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Evet, veritabanı uyumluluk düzeyi 160 olan SQL Server 2022 (16.x)) ile başlayarak veritabanı için ve READ_WRITE modunda Query Store etkinleştirilmesini gerektirir.
Query Store ile Optimize edilmiş plan zorlaması Yes Evet, SQL Server 2022 (16.x) ile başlayarak). Zorlamalı sorguların yinelenmesi için derleme ek yükünü azaltır. Daha fazla bilgi için bkz. Query Store ile Optimize edilmiş plan zorlama.
Skaler UDF Satır İçi Yerleştirme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Evet, veritabanı uyumluluk düzeyi 150 olan SQL Server 2019(15.x) ile başlayarak Skaler UDF'ler, çağrı sorgusuna "inlined" eşdeğer ilişkisel ifadelere dönüştürülür ve bu da genellikle önemli performans kazanımlarına neden olur.
Parametreye Duyarlı Plan optimizasyonu Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Evet, veritabanı uyumluluk düzeyi 160 olan SQL Server 2022'den (16.x) başlayarak Parametre Duyarlı Plan iyileştirmesi, parametreli sorgu için tek bir önbelleğe alınmış planın, tekdüzen olmayan veri dağıtımları gibi tüm olası gelen parametre değerleri için en uygun olmadığı senaryoyu ele alır.
Tablo Değişkeni Ertelenmiş Derleme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Evet, veritabanı uyumluluk düzeyi 150 olan SQL Server 2019(15.x) ile başlayarak Sabit bir tahmin yerine ilk derlemede karşılaşılan tablo değişkeninin gerçek kardinalitesini kullanır.

Azure SQL Managed Instance için IQP özellikleri

IQP Özelliği Azure SQL Managed Instance'da desteklenir Description
Uyarlamalı Birleşimler (Toplu İş Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Uyarlamalı birleşimler, çalışma zamanı sırasında gerçek giriş satırlarına göre dinamik olarak bir birleştirme türü seçer.
Yaklaşık Sayı Ayrı Yes Yüksek performans ile düşük bellek tüketimi avantajıyla büyük veri senaryoları için tahminî COUNT DISTINCT sağlayın.
Yaklaşık Yüzdebirlik Evet, veritabanı uyumluluk düzeyi 110'dan başlayarak Yaklaşık yüzdebirlik toplama işlevlerini kullanarak hızlı kararlar alınmasına yardımcı olmak için kabul edilebilir derece tabanlı hata sınırlarına sahip büyük bir veri kümesinin yüzdebirlik dilimlerini hızla hesaplayın.
Rowstore'da Batch Modu Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Columnstore dizinlerine gerek kalmadan CPU'ya bağlı ilişkisel DW iş yükleri için toplu iş modu sağlayın.
Kardinalite tahmini (CE) geri bildirimi Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Verimsiz CE varsayımlarının düşük sorgu performansına neden olduğu iş yüklerini iyileştirmek için yinelenen sorgular için kardinalite tahminlerini otomatik olarak ayarlar. CE geri bildirimi, sorgu yürütme planı kalitesini geliştirmek için belirli bir sorguya ve veri dağıtımına daha uygun bir model varsayımı belirler ve kullanır.
İfadeler için kardinalite tahmini (CE) geri bildirimi Evet, Azure SQL Managed Instance'da veritabanı uyumluluk düzeyi 160'tan başlayarak SQL Server 2025 veya Her zaman güncelgüncelleme ilkesi. Hayır, SQL Server 2022 güncelleştirme ilkesi için. Önceki yürütmelerden ders alarak ve bu ifadelerin gelecekteki yürütmelerine uygun CE modeli seçeneklerini otomatik olarak uygulayarak sorgular arasında yinelenen ifadeler için kardinalite tahminlerini geliştirmek için CE geri bildirimini genişletir.
Paralellik derecesi (DOP) geri bildirim Evet, Azure SQL Managed Instance'da SQL Server 2025 veya Always-up-to-dateupdate ilkesi ile veritabanı uyumluluk düzeyi 160'tan başlayarak. Hayır, SQL Server 2022 güncelleştirme ilkesi için. Verimsiz paralelliğin performans sorunlarına neden olabileceği iş yükleri için iyileştirme yapmak üzere yinelenen sorgular için paralellik derecesini otomatik olarak ayarlar. Query Store etkinleştirilmesini gerektirir.
Aralıklı Yürütme Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Sabit bir tahmin yerine, ilk derlemede karşılaşılan çok deyimli tablo değerli fonksiyonun gerçek kardinalitesini kullanır.
Bellek tahsis geri bildirimi (Batch Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Toplu iş modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Bellek tahsis geri bildirimi (Satır Modu) Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Satır modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Bellek verme geri bildirimi (Yüzdebirlik) Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Geçmiş sorgu yürütmeyi dahil ederek, bellek verme geri bildiriminin mevcut sınırlamalarını müdahale etmeden iyileştirir.
Bellek İzni, CE ve DOP geri bildirim sürekliliği Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Bellek tahsisi geri bildirimini kalıcılaştıran yeni işlevler sağlar. CE ve DOP geri bildirimleri her zaman kalıcıdır. veritabanı için ve READ_WRITE modunda Query Store etkinleştirilmesini gerektirir.
İsteğe bağlı parametre planı iyileştirme (OPPO) Evet, Azure SQL Managed Instance'da SQL Server 2025 veya Always-up-to-dateupdate ilkesi ile veritabanı uyumluluk düzeyi 170'den başlayarak. Hayır, SQL Server 2022 güncelleştirme ilkesi için. Tek bir deyimden birden çok plan oluşturan Parametreye Duyarlı Plan İyileştirme (PSPO) geliştirmesiyle tanıtılan uyarlamalı plan iyileştirme (Multiplan) altyapısından yararlanıyor. Özellik, bir parametrenin NULL OR NOT NULLolup olmadığına bağlı olarak çalışma zamanında daha uygun bir plan seçebilir ve bu da bu tür sorgu desenleri için varsayılan olarak en iyi olmayan performansa sahip sorgular için performansı artırır.
Query Store ile Optimize edilmiş plan zorlaması Hayır Zorlamalı sorguların yinelenmesi için derleme ek yükünü azaltır. Daha fazla bilgi için bkz. Query Store ile Optimize edilmiş plan zorlama.
Parametreye Duyarlı Plan optimizasyonu Evet, veritabanı uyumluluk düzeyi 160'tan başlayarak Parametre Duyarlılık Planı İyileştirme, parametreli sorgu için tek bir önbelleğe alınmış planın, tekdüzen olmayan veri dağıtımları gibi tüm olası gelen parametre değerleri için en uygun olmadığı senaryoyu ele alır.
Skaler UDF Satır İçi Yerleştirme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Skaler UDF'ler, çağrı sorgusuna "inlined" eşdeğer ilişkisel ifadelere dönüştürülür ve bu da genellikle önemli performans kazanımlarına neden olur.
Tablo Değişkeni Ertelenmiş Derleme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Sabit bir tahmin yerine ilk derlemede karşılaşılan tablo değişkeninin gerçek kardinalitesini kullanır.

SQL Server 2019 için IQP özellikleri

IQP özelliği SQL Server 2019 'da (15.x) desteklenir Description
Uyarlamalı Birleşimler (Toplu İş Modu) Evet, SQL Server 2017'den (14.x) başlayarak veritabanı uyumluluk düzeyi 140 Uyarlamalı birleşimler, çalışma zamanı sırasında gerçek giriş satırlarına göre dinamik olarak bir birleştirme türü seçer.
Yaklaşık Sayı Ayrı Yes Yüksek performans ile düşük bellek tüketimi avantajıyla büyük veri senaryoları için tahminî COUNT DISTINCT sağlayın.
Rowstore'da Batch Modu Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Columnstore dizinlerine gerek kalmadan CPU'ya bağlı ilişkisel DW iş yükleri için toplu iş modu sağlayın.
Aralıklı Yürütme Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Sabit bir tahmin yerine ilk derlemede karşılaşılan çok deyimli tablo değerli işlevinin gerçek kardinalitesini kullanın.
Bellek tahsis geri bildirimi (Batch Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Toplu iş modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Bellek tahsis geri bildirimi (Satır Modu) Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Satır modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.
Skaler UDF Satır İçi Yerleştirme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Skaler UDF'ler, çağrı sorgusuna "inlined" eşdeğer ilişkisel ifadelere dönüştürülür ve bu da genellikle önemli performans kazanımlarına neden olur.
Tablo Değişkeni Ertelenmiş Derleme Evet, veritabanı uyumluluk düzeyi 150'den başlayarak Sabit bir tahmin yerine ilk derlemede karşılaşılan tablo değişkeninin gerçek kardinalitesini kullanın.

SQL Server 2017 için IQP özellikleri

IQP özelliği SQL Server 2017 'de (14.x) desteklenir Description
Uyarlamalı Birleşimler (Toplu İş Modu) Evet, SQL Server 2017'den (14.x) başlayarak veritabanı uyumluluk düzeyi 140 Uyarlamalı birleşimler, çalışma zamanı sırasında gerçek giriş satırlarına göre dinamik olarak bir birleştirme türü seçer.
Yaklaşık Sayı Ayrı Yes Yüksek performans ile düşük bellek tüketimi avantajıyla büyük veri senaryoları için tahminî COUNT DISTINCT sağlayın.
Aralıklı Yürütme Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Sabit bir tahmin yerine ilk derlemede karşılaşılan çok deyimli tablo değerli işlevinin gerçek kardinalitesini kullanın.
Bellek tahsis geri bildirimi (Batch Modu) Evet, veritabanı uyumluluk düzeyi 140'tan başlayarak Toplu iş modu sorgusunda diske taşan işlemler varsa, ardışık yürütmeler için daha fazla bellek ekleyin. Sorgu, kendisine ayrılan belleğin 50%'ını harcarsa, ardışık yürütmeler için bellek tahsis boyutunu azaltın.

Query Store gereksinimi

İlgili akıllı sorgu işleme özelliklerinden bazıları, kullanıcı veritabanının faydalanabilmesi için Query Store’un etkinleştirilmesini gerektirir. Query Store etkinleştirmek için bkz. Query Store etkinleştirme.

IQP özelliği Query Store'un etkin olması ve READ_WRITE gerektirir.
Uyarlamalı Birleşimler (Toplu İş Modu) No
Yaklaşık Sayı Ayrı No
Yaklaşık Yüzdebirlik No
Rowstore'da Batch Modu No
Kardinalite tahmini (CE) geri bildirimi Yes
Paralellik derecesi (DOP) geri bildirim Yes
Aralıklı Yürütme No
Bellek tahsis geri bildirimi (Batch Modu) No
Bellek tahsis geri bildirimi (Satır Modu) No
Bellek verme geri bildirimi (Yüzdebirlik ve Kalıcılık modu) Yes
Query Store ile Optimize edilmiş plan zorlaması Yes
Skaler UDF Satır İçi Yerleştirme No
Parametreye Duyarlı Plan optimizasyonu Hayır, ancak önerilir
Tablo Değişkeni Ertelenmiş Derleme No