dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #42
sqlserver
Performanceread-onlyMin Version: 2012

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.

#query-stats#cpu#top-queries
sqlserver · sql
SELECT TOP 20
       qs.total_worker_time / 1000 AS total_cpu_ms,
       qs.execution_count,
       qs.total_worker_time / qs.execution_count / 1000 AS avg_cpu_ms,
       qs.total_logical_reads / qs.execution_count AS avg_logical_reads,
       qs.last_execution_time,
       SUBSTRING(t.text, (qs.statement_start_offset/2)+1,
         ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(t.text)
           ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)+1) AS statement_text,
       DB_NAME(t.dbid) AS db_name
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) t
ORDER BY qs.total_worker_time DESC;
Operasyonel Notlar & İyileştirme Aksiyonu

Plan cache temizlenince veya yeniden başlatılınca sıfırlanır. Kalıcı geçmiş için Query Store kullanın.

Ü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: 2012) 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.