SQL Server Management Studio 版本 17.2 及更高版本包括性能仪表板。 此仪表板旨在直观地深入了解 SQL Server 和 Azure SQL 托管实例的性能状态。
性能仪表板有助于快速识别 SQL Server 或 Azure SQL 数据库是否遇到性能瓶颈。 如果发现瓶颈,还可以轻松采集解决该问题可能需要的额外诊断数据。 性能仪表板可帮助识别的一些常见性能问题包括:
- CPU 瓶颈(以及哪些查询正占用最多的 CPU)
- I/O 瓶颈(以及哪些查询产生了最多的 I/O)
- 查询优化器生成的索引建议(缺失索引)
- 阻塞
- 资源争用(包括闩锁争用)
性能仪表板还有助于识别可能以前执行的昂贵查询,并且可以使用多个指标来定义高成本:CPU、逻辑写入、逻辑读取、持续时间、物理读取和 CLR 时间。
性能仪表板分为以下各部分和子报表:
系统 CPU 使用率
当前等待中的请求
当前活动
- 用户请求
- 用户会话
- 缓存命中率
历史信息
- 等待
- 闩锁
- I/O 统计信息
- 耗费大量资源的查询
其他信息
- 活动追踪
- 活动 XEvent 会话
- 数据库
- 缺失的索引
注意
性能仪表板在内部使用与 执行相关的动态管理视图和函数、索引相关的动态管理视图和函数 以及 I/O 相关的动态管理视图和函数 相关的动态管理视图 (DMV) 和函数 (DMF)。
查看性能仪表板
若要查看性能仪表板,请在对象资源管理器中右键单击 SQL Server 实例名称,选择 “报表”、“ 标准报表”,然后选择“ 性能仪表板”。
性能仪表板显示为新选项卡。下面是一个明显存在 CPU 瓶颈的示例:
注解
“缺失索引”报表显示查询编译期间查询优化程序识别的可能缺少的索引。 但是,这些建议不应按字面理解。 Microsoft 建议评估是否创建评分高于 100,000 的索引,因为这些索引预计能为用户查询带来最大的改进。
提示
始终评估新索引建议是否与同一表中的现有索引相当,只需更改现有索引而不是创建新索引即可实现相同的实际结果。 例如,给定一个针对列 C1、C2 和 C3 的新建议索引,首先评估是否已存在一个涵盖列 C1 和 C2 的索引。 如果是这样,则最好将列 C3 添加到现有索引(保留预先存在的列的顺序),以避免创建新索引。 有关详细信息,请参阅 SQL Server 以及 Azure SQL 索引体系结构和设计指南。
Waits 报表会筛选掉所有空闲等待和睡眠等待。 有关等待的详细信息,请参阅 sys.dm_os_wait_stats 和 SQL Server 2005 使用等待和队列优化性能。
SQL Server 重启时耗费大量资源的查询报表将重置,因为基础 DMV 中的数据已被清除。 在 SQL Server 2016(13.x)及更高版本中,可以在查询存储中找到有关昂贵查询的详细信息。
注意
虽然 SQL Server Management Studio 报表呈现器不支持剪贴板访问报表中包含的文本,但可以通过独立报表访问文本。 如果需要从报表复制查询文本,请下载独立报表。
权限
SQL Server 需要 VIEW SERVER STATE 和 ALTER TRACE 权限。
Azure SQL 托管实例需要具有数据库中的 VIEW DATABASE STATE 权限。