Sorgu Ayarlama Yardımcısı'nın (QTA) sizin için uygun olup olmadığını belirleme

Tamamlandı 100 XP

Veritabanı sürümü yükseltmelerinden sonra olası sorgu planı regresyonunun ve performans kaybının farkındasınız. Veritabanı yükseltmelerinden sonra performansı korumaya yardımcı olmak için, gerileyen sorguları tanımlamak ve azaltmak için en iyi yöntemi bulmanız gerekir. Bu ünitede, yükseltmelerden sonra düşük performansın sorun olmadığından emin olmak için Sorgu Deposu ve Sorgu Ayarlama Yardımcısı'nı (QTA) nasıl kullanabileceğiniz açıklanır.

Sorgu Deposu ve Sorgu Ayarlama Yardımcısı'nı kullanmaya başlama

QTA, yükseltmeden sonra gerileyen sorguları bulmak için Sorgu Deposu verilerine bağlıdır. Sorgu Deposu, yükseltmeden önce eski veritabanı sürümüne ilişkin ölçümleri toplamanıza olanak tanır.

Sorgu Deposu SQL Server 2016'da, QTA ise SQL Server 2017'de kullanıma sunulmuştur. SQL Server 2022 örneğinde çalışan tüm veritabanı sürümleri bu özelliklerin ikisini de kullanabilir. Bu araçlar SQL Server Management Studio (SSMS) ile tümleşiktir ve veritabanı düzeyinde çalışır.

Veritabanının uyumluluk düzeyi, sürümünü belirler ve bu da kullandığı kardinalite tahmin aracı sürümünü belirler. Kardinalite tahmin aracı, bir sorgunun kaç satır döndürme olasılığını tahmin eder, böylece sorgu iyileştiricisi en düşük maliyetli planı seçebilir. SQL Server 2014, çoğu sorgudan yararlanan ancak nadiren olumsuz performans etkisi oluşturabilen yükseltilmiş bir kardinalite tahmin aracı algoritması kullanıma sunulmuştur.

Performans etkisini ölçmek için Sorgu Deposu, gerileyen sorguları ve en fazla sistem kaynağını tüketen sorguları raporlar. QTA, sorgu deposu sorgu performansı verilerini veritabanı yükseltmesi öncesi ve sonrasında karşılaştırır ve performansı geliştirmek için sorgular üzerinde denemeler gerçekleştirir.

Not

QTA, Azure SQL Veritabanı veya SQL Yönetilen Örneği veritabanları için kullanılamaz. Bu veritabanları için Azure Data Studio içinAzure SQL geçiş uzantısını kullanmayı göz önünde bulundurun.

QTA ve otomatik plan düzeltmesi

SQL Server bir Transact-SQL (T-SQL) sorgusu çalıştırdığında, sorguyu yürütebilecek olası planları analiz eder. SQL Server, başarıyla yürütülen sorgular için planları önbelleğe alır ve sorgular yeniden yürütülürken bunları yeniden kullanır.

SQL Server, sorgu için en uygun planı seçer ve bir durum onu yeni bir sorgu seçmeye zorlayana kadar kullanır. Bu koşullar, planı yeniden derleyen veritabanı altyapısını, eklenen veya kaldırılan bir dizini veya değiştirilen istatistikleri içerebilir.

Yeni planın eski planla ilgili bir gelişme olması her zaman söz konusu değildir. Gerileyen planı olan sorguları aramak için aşağıdaki komutu çalıştırabilirsiniz.

SQL
SELECT * FROM sys.dm_db_tuning_recommendations

Daha sonra SQL Server'ı önerilen belirli bir planı kullanmaya zorlamak için sp_force_plan saklı yordamını kullanabilirsiniz.

SQL
EXEC sp_force_plan @query_id = 1187, @plan_id = 1975

sp_force_plan yordamı, yükseltilen bir veritabanında birçok sorgunun gerilemesi durumunda zahmetli olabilecek el ile gerçekleştirilen bir işlemdir. SQL Server 2017, sorguları otomatik olarak ayarlamak ve el ile müdahale gereksinimini ortadan kaldırmak için otomatik plan düzeltme adlı yeni bir özellik kullanıma sunulmuştur. Aşağıdaki deyimi çalıştırarak veritabanında otomatik plan düzeltmesini etkinleştirebilirsiniz:

SQL
ALTER DATABASE <database-name> SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON)

Veritabanı düzeyinde ayarlandığında, otomatik plan düzeltmesi SQL Server'a son iyi sorgu planını kullanmasını emreder. SQL Server, plan yürütülürken regresyonları bulmak ve en iyi performansı sağladığından emin olmak için planı izlemeye devam eder.

Otomatik plan düzeltmesi QTA'dan farklı çalışır. Son iyi planı kullanmak, önceki bir kardinalite tahmin aracına geri dönme anlamına gelebilir. Buna karşılık, QTA denemelerini hedef veritabanı uyumluluk düzeyine eşlenen kardinalite tahmin aracının sürümünü kullanarak yapar.

Özet

QTA, SQL Server 2022'de kullanılabilir ve çalıştıracak Sorgu Deposu'na bağlıdır. QTA'nın, yükseltmeden sonra sorguları gözlemleyip karşılaştırmalar yapabilmesi için bir veritabanı için önceki uyumluluk düzeyinde Sorgu Deposu temel verilerine sahip olması gerekir.

SQL Server 2017'de kullanıma sunulan otomatik plan düzeltmesi, sorgu planını el ile tanımlama ve zorlama gereksinimini ortadan kaldırır. Otomatik plan düzeltmesi veritabanı düzeyinde etkinleştirilebilir, ancak kardinalite tahmin aracının sürümünü geri alabilir. QTA, kardinalite tahmin aracının hedef uyumluluk düzeyine eşlenen sürümünü kullanır.


Sonraki ünite: Sorgu Ayarlama Yardımcısı'nı (QTA) kullanmaya başlama

Önceki Sonraki