SQL Server Query Store ile Parametre Koklama (Parameter Sniffing) Adayları
Aynı sorgu için birden fazla plan ve büyük süre farkı olan sorguları bulur. Plan regresyonu ve parameter sniffing sorunlarını teşhis eder.
SELECT TOP 20 q.query_id,
COUNT(DISTINCT p.plan_id) AS plan_count,
MIN(rs.avg_duration) / 1000 AS min_avg_ms,
MAX(rs.avg_duration) / 1000 AS max_avg_ms,
MAX(rs.avg_duration) / NULLIF(MIN(rs.avg_duration), 0) AS ratio,
LEFT(qt.query_sql_text, 150) AS query_text
FROM sys.query_store_query q
JOIN sys.query_store_query_text qt ON qt.query_text_id = q.query_text_id
JOIN sys.query_store_plan p ON p.query_id = q.query_id
JOIN sys.query_store_runtime_stats rs ON rs.plan_id = p.plan_id
GROUP BY q.query_id, qt.query_sql_text
HAVING COUNT(DISTINCT p.plan_id) > 1
ORDER BY ratio DESC;Query Store ilgili veritabanında açık olmalıdır (`ALTER DATABASE ... SET QUERY_STORE = ON`).
- Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
- Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 2016) doğrulayın.
- İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.
Mühendislik Triadı: İlgili Runbook ve Kriz Müdahaleleri
Bu script hangi üretim alarmlarında ve acil durum tatbikatlarında teşhis adımı olarak çalıştırılır?
SQL Server CPU %100: sp_WhoIsActive, Query Store ve Darboğaz Triyajı
SQL Server veya Azure SQL'de CPU'nun %90 üzerine çıkması durumunda sp_WhoIsActive ile anlık yük analizi, Query Store regresyon tespiti, parameter sniffing ve Resource Governor müdahalesi.
SQL Server Yüksek Compilations / Batch Requests Oranı ve Plan Cache Şişmesi
Tek kullanımlık ad-hoc planları ve sık yeniden derlenen sorguları ayırır; uygulama parametreleme sorununu ve hedefli sunucu ayarlarını ele alır.
Diğer SQLSERVER Teşhis Scriptleri
Tümünü Gör (100)SQL Server'da Çalışan İstekler ve Bloklama Zinciri
Aktif istekleri, bekleme tiplerini, bloklayan oturumları ve çalışan ifadeyi birlikte gösterir. Yavaşlama anında ilk çalıştırılacak teşhis sorgusudur.
SQL Server En Çok CPU Tüketen Sorgular
Plan cache'ten toplam ve ortalama CPU süresine göre ilk 20 sorguyu çıkarır. CPU baskısının kaynağını sorgu düzeyinde ortaya koyar.
SQL Server Eksik İndeks Önerileri (Missing Index DMV)
Optimizer'ın önerdiği eksik indeksleri tahmini kazanç skoruna göre sıralar. Öneriler mevcut indekslerle birleştirilerek değerlendirilmelidir.
SQL Server İndeks Fragmentasyonu ve Rebuild/Reorganize Önerisi
Büyük indekslerde fragmentasyon yüzdesini ölçer ve rebuild ya da reorganize önerir. Bakım penceresini gereksiz işlerle doldurmadan planlamanızı sağlar.