示例:
SELECT
session_id, request_id, task_alloc, task_dealloc, hostname, program_name, loginame, text
FROM sys.dm_db_session_space_usage s
JOIN sys.sysprocesses p ON s.session_id = p.spid
CROSS APPLY sys.dm_exec_sql_text(p.sql_handle)
ORDER BY task_alloc DESC;
等待统计(定位瓶颈类型)
示例:
SELECT TOP 20 wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms
FROM sys.dm_os_wait_stats
ORDER BY wait_time_ms DESC;
会话与请求(活跃会话、阻塞链)
示例:
SELECT
s.session_id, r.status, r.cpu_time, r.logical_reads, r.reads, r.writes,
s.loginame, s.host_name, s.program_name,
t.text
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE s.is_user_process = 1
ORDER BY r.cpu_time DESC;
性能计数器(与系统层指标交叉验证)
示例:
SELECT
counter_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters
WHERE counter_name IN (N’Page life expectancy’, N’Buffer cache hit ratio’, N’Lazy writes/sec’, N’Page reads/sec’, N’Page writes/sec’);
SQL Server 缓冲命中率低于 95%:1 - (1.0 * SUM(CASE WHEN counter_name = ‘Buffer cache hit ratio’ THEN cntr_value ELSE 0 END) / SUM(CASE WHEN counter_name = ‘Buffer cache hit ratio base’ THEN cntr_value ELSE 0 END)) < 0.95