识别瓶颈

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

对共享资源同时访问会导致瓶颈。 通常,每一软件系统都不可避免地存在瓶颈。 然而,对共享资源的过多需求将导致响应时间过长,因此必须进行识别和优化。

导致瓶颈的原因包括:

  • 资源不足,需要添加或升级组件。

  • 工作负荷在同类资源之间分布不均(例如,一个磁盘被独占)。

  • 资源发生故障。

  • 资源配置不正确。

分析瓶颈

如果有多个事件的持续时间都过长,则表明存在能被优化的瓶颈。

例如:

  • 当某项工作试图访问某个组件时,某些其他组件可能加以妨碍,从而延长完成该工作所需的时间。

  • 客户端请求可能因网络阻塞而花费更长时间。

下面是跟踪服务器性能以识别瓶颈时应监视的五个主要方面。

可能的瓶颈方面 对服务器的影响
内存使用率 分配的内存不足或可由 Microsoft SQL Server 使用的内存不足导致性能下降。 数据必须从磁盘读取而非直接从数据缓存读取。 当需要页时,Microsoft Windows 操作系统将通过与磁盘交换数据来执行大量分页操作。
CPU 使用率 长期的高 CPU 使用率可能表明 Transact-SQL 查询需要优化或 CPU 需要升级。
磁盘输入/输出 (I/O) Transact-SQL 可以优化查询以减少不必要的 I/O(例如,使用索引)。
用户连接 可能有太多用户同时访问服务器,从而导致性能下降。
阻塞锁 应用程序设计不合理可能导致锁定或妨碍并发,因而导致更长的响应时间和更低的事务吞吐速度。

另请参阅

监视 CPU 用量
监视磁盘用量
监视内存用量
SQL Server - General Statistics 对象
SQL Server - Locks 对象