跳到主要内容
常见问题 SQL Server性能慢查询

SQL Server 变慢了怎么系统性排查

数据库整体变慢的系统性排查路径:资源瓶颈、等待类型、慢查询定位,从引擎到应用的分层诊断。

发布于 2026/11/11 所属频道 SQL Server

简短答案

「变慢」先分层定位:是资源瓶颈(CPU/内存/磁盘/IO),还是个别慢查询,或锁等待。自上而下排查,别一上来就改索引。

排查路径

  1. 看资源瓶颈:
SELECT wait_type, wait_time_ms/signal_wait_time_ms
FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC;
  1. 看谁在跑、在等什么:
SELECT session_id, status, wait_type, blocking_session_id,
       command, login_name
FROM sys.dm_exec_requests;
  1. 对慢会话取当前 SQL 文本,核对执行计划(SSMS 中按 Ctrl+M 查看执行计划)。
  2. 判断是「数据量涨了」还是「执行计划变了」:索引缺失、统计信息过期是高频原因。
  3. 各版本性能特性(如查询优化器改进)以 SQL Server 2022 Developer 条目页核对。
  4. 资源侧确认机器 CPU/磁盘余量,瓶颈在机器则先扩容。

现象对照表

现象 优先查
全库慢、并发都卡 资源瓶颈(CPU/磁盘/IO)
个别查询慢 执行计划与索引
间歇性卡死 锁等待与阻塞链

操作小结

  1. 先分层:资源 → 会话 → 查询计划。
  2. dm_os_wait_stats 与 dm_exec_requests 是起点。
  3. 统计信息过期是高频根因,先更新统计信息再调索引。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常见问题

同一集合内的相近主题,按标签与关键词匹配