MSSQL Server’da Automatic Tuning Nedir 

Automatic Tuning, SQL Server’ın yürütme planlarını (execution plans) sürekli izlediği ve potansiyel performans sorunlarını otomatik olarak tespit edip çözdüğü bir sürekli izleme özelliğidir. Temelde, Query Store (Sorgu Deposu) verilerini kullanarak veritabanının geçmişteki performansını analiz eder.

Sistem şu döngüyü takip eder:

  1. İzleme: Query Store üzerinden sorgu istatistiklerini toplar.
  2. Hata Tespiti: Bir sorgunun performansının aniden düştüğünü (Plan Regression) fark eder.
  3. Düzeltme: Eğer eski bir plan yenisinden daha iyi çalışıyorsa, otomatik olarak eski iyi planı “zorlar” (Force Plan).
  4. Doğrulama: Yapılan değişikliğin gerçekten performansı artırıp artırmadığını test eder; artırmadıysa değişikliği geri alır.

Automatic Tuning’i kullanabilmek için öncelikle Query Store özelliğinin ilgili veritabanında aktif olması gerekir.

Aşağıdaki komut, SQL Server’ın “en iyi planı zorlama” yeteneğini aktif hale getirir:

-- Önce Query Store'un açık olduğundan emin olun
ALTER DATABASE [VeritabaniAdiniz] SET QUERY_STORE = ON;

-- Otomatik Plan Düzeltmeyi açın
ALTER DATABASE [VeritabaniAdiniz] 
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );

Avantajları ve Dezavantajları

Her “otomatik” sistemde olduğu gibi, bu özelliğin de bir denge terazisi vardır.

Avantajları

  • Anında Müdahale: Performans sorunu (parameter sniffing vb.) gece saat 03:00’te oluşsa bile sistem saniyeler içinde müdahale eder.
  • DBA Yükünü Azaltır: Tekrarlanan ve manuel müdahale gerektiren plan regresyonu sorunlarıyla uğraşmanıza gerek kalmaz.
  • Güvenli Geri Dönüş: Eğer zorlanan eski plan bekleneni vermezse, sistem bunu fark eder ve otomatik olarak vazgeçer.
  • Sürekli Öğrenme: Veritabanı iş yükü değiştikçe kendini güncel tutar.

Dezavantajları

  • Kök Nedeni Gizleyebilir: Sistem bir semptomu (kötü planı) düzeltir ancak sorunun kökünde yatan eksik index veya kötü yazılmış sorgu gibi asıl sorunları görmezden gelmenize neden olabilir.
  • Kaynak Tüketimi: Query Store’un çalışması ve sürekli arka plan analizi, çok yoğun sistemlerde ufak bir overhead (ek yük) yaratabilir.
  • Kontrol Kaybı Hissi: Bazı kıdemli DBA’lar, veritabanının kendi kendine karar vermesini riskli bulabilir ve manuel kontrolü tercih edebilir.

Eğer SQL Server 2017 veya üzerini kullanıyorsanız, Automatic Tuning kesinlikle açık olması gereken bir “emniyet kemeri” gibidir. Özellikle kritik ve değişken iş yüklerine sahip ortamlarda, bir sorgunun yanlış plan seçmesi nedeniyle tüm sistemin kilitlenmesini engellemek adına hayat kurtarıcıdır.

Azure SQL Database kullanıyorsanız, bu özelliğe ek olarak “Automatic Index Creation” (Otomatik İndeks Oluşturma) gibi daha ileri seviye yapay zeka özelliklerine de sahip olabilirsiniz; ancak on-premise (yerel) SQL Server’da şu an için sadece plan zorlama (Force Plan) aktiftir.

Başka makalede görüşmek dileğiyle..

“Biz ona şah damarından daha yakınız.” Kaf-16

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir