识别瓶颈
适用于: 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 对象