dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #47
sqlserver
Monitoringread-onlyMin Version: 2008

SQL Server Wait Stats: Darboğaz Analizi

Sistemin en çok hangi kaynakta beklediğini yüzdeleriyle listeler. CPU, disk, kilit veya paralellik kaynaklı darboğazı ayırt etmenin başlangıç noktasıdır.

#wait-stats#bottleneck#dmv
sqlserver · sql
SELECT TOP 15
       wait_type,
       waiting_tasks_count,
       CAST(wait_time_ms / 1000.0 AS DECIMAL(18,1)) AS wait_sec,
       CAST(100.0 * wait_time_ms / SUM(wait_time_ms) OVER () AS DECIMAL(5,2)) AS pct
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN (
  'SLEEP_TASK','SLEEP_SYSTEMTASK','LAZYWRITER_SLEEP','SQLTRACE_BUFFER_FLUSH',
  'BROKER_TASK_STOP','BROKER_TO_FLUSH','XE_TIMER_EVENT','XE_DISPATCHER_WAIT',
  'REQUEST_FOR_DEADLOCK_SEARCH','CHECKPOINT_QUEUE','DIRTY_PAGE_POLL',
  'HADR_FILESTREAM_IOMGR_IOCOMPLETION','LOGMGR_QUEUE','WAITFOR','FT_IFTS_SCHEDULER_IDLE_WAIT',
  'SP_SERVER_DIAGNOSTICS_SLEEP','QDS_PERSIST_TASK_MAIN_LOOP_SLEEP','QDS_ASYNC_QUEUE',
  'SQLTRACE_INCREMENTAL_FLUSH_SLEEP','BROKER_EVENTHANDLER','CLR_AUTO_EVENT','CLR_MANUAL_EVENT')
  AND wait_time_ms > 0
ORDER BY wait_time_ms 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.