SQL Server调优的五个步骤(下)
www.InnovateDigital.com 整理 步骤3 减少竞争 ■ 阻塞锁-对象竞争-数据库锁 确定是否存在明显的锁竞争,如果存在,看看经常出现锁竞争的数据库表,帮助识别故障点和缺失的索引,应用倾向于访问数据库中的某些特定的表多一些。当隔离层设置不正确时,事务会执行很长时间,由于涉及到的索引导致不能访问数据,处理发生冲突或发生阻塞等。许多应用管理员没有意识到数据库遭受阻塞的程度;我们需要分析和发现由频繁的短期锁大量累积而导致的明显竞争。■ 阻塞锁-锁类型-数据库锁 确定是否存在明显的锁竞争,如果存在,按照数据库分析锁的类型。某些应用以不同的方式访问不同的特定数据库。其原因可能是不同的开发人员开发的代码不同,或需求不断变化等等。按照数据库显示不同的SQL Server锁类型的分析结果,显示锁的行为与整体活动时间的比较分析的重要程度,这些将有助于应用程序开发人员正确地修改他们的应用代码。■ 内存缓冲区闩锁-数据库闩锁 确定是否存在明显的内存缓冲区闩锁竞争,如果存在,很多的内存缓冲区闩锁等待是I/O瓶颈和热页的迹象。因为内存缓冲区闩锁与I/O竞争没有直接关系,因而这对SQL Server的可用内存数量是很关键的。■ 内部高速缓存闩锁竞争- 数据库闩锁 确定是否存在明显的内部高速缓存闩锁竞争,如果存在,识别出哪里存在大部分竞争。内部高速缓存闩锁可用在多种不同的情况;可能最常见的例子是内部高速缓存的竞争(不是缓冲池页),尤其当使用堆,text或两者同时使用的时候。如果解决LOG和PAGELATCH_UP的竞争后没有作用,通常将数据分区可以很好缓解内部高速缓存闩锁的竞争。
步骤4 解决资源瓶颈 ■ 内存压力-系统内存 确定是否存在明显的内存压力,如果存在,请分析:● 外部的内存压力可以影响SQL Server的性能。许多DBA和DBA的经理们不明白病毒检测软件的配置不当和在一个exchange server上安装SQL Server所带来的影响。 ● SQL Server没有足够的内存达到理想的功能。如果SQL Server不能分配给缓存足够的内存,页的平均寿命将减少,系统范围内存分页交换就会增加。 ■ 日志等待 确定是否有明显的日志等待,如果有,分析有多少因素减慢SQL Server记录日志。
步骤5 基线偏离分析 ■ CPU使用率偏离,CPU等待时间偏离,I/O等待时间偏离,闩锁等待时间偏离, 锁等待时间偏离,工作量偏离 ● 确定这些指标是否与过去典型的使用情况发生了重要变化。 ● 这些变化应该再核实确认,确保它们不会成为有问题的变化。 |