dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #58
sqlserver
Performanceread-onlyMin Version: 2008

SQL Server Plan Cache'te Tek Kullanımlık Ad-hoc Plan Şişmesi

Yalnızca bir kez kullanılmış plan sayısını ve kapladığı belleği gösterir. 'optimize for ad hoc workloads' ayarına karar vermek için kullanılır.

#plan-cache#ad-hoc#optimize-for-ad-hoc
sqlserver · sql
SELECT objtype,
       COUNT(*) AS plans,
       SUM(CASE WHEN usecounts = 1 THEN 1 ELSE 0 END) AS single_use_plans,
       CAST(SUM(CAST(size_in_bytes AS BIGINT)) / 1048576.0 AS DECIMAL(18,1)) AS total_mb,
       CAST(SUM(CASE WHEN usecounts = 1 THEN CAST(size_in_bytes AS BIGINT) ELSE 0 END) / 1048576.0 AS DECIMAL(18,1)) AS single_use_mb
FROM sys.dm_exec_cached_plans
GROUP BY objtype
ORDER BY total_mb DESC;
Operasyonel Notlar & İyileştirme Aksiyonu

Üretim ortamında çalıştırmadan önce test ortamında doğrulayın. Salt okunur teşhis sorgusudur; sistem kilitlerine yol açmaz.

Üretim Güvenliği & Çalıştırma Standartları
  • 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: 2008) 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.