SQL Server调优的五个步骤(上)
www.InnovateDigital.com 整理 步骤1 优化应用工作量 ■ 编译/重新编译- 数据库,CPU 确定是否存在显著的CPU竞争,如果存在,请关注重新编译次数多的那些T-SQL语句,它们占用大量CPU资源。如果应用中SQL代码重新编译次数很多,可以考虑下面优化方法:●评估有关的语句的作用,将数据修改代码和数据定义命令相分离。 ●解决过时的索引统计。 ●使用变量或其他逻辑替代临时表。微软忠告:频繁地编译/重新编译会消耗很高的CPU和磁盘I/O资源,会增加整体的工作量竞争。 ■ 低效率的查询计划-数据库,CPU 确定是否存在明显的CPU竞争,如果有,请确定无效率查询计划是如何占用过多的cpu资源。是否存在数据库模式,应用需求,用户使用的报表工具,或其它条件促使在生产环境下执行无效率的查询,使用Hash连接和排序操作的查询,结果会消耗很高的CPU和I/O。
步骤2 减少读/写活动 ■ 无效率的或缺失的索引-DB I/O 确定是否存在明显的磁盘I/O竞争,如果存在,需要分析缺失或或无效率的索引是如何导致磁盘I/O瓶颈的。DBA们必须评估应用的 SQL代码保证语句尽可能有效率地执行;这项任务通常必需创建索引来最有效地提取数据。如果应用的SQL代码发生变化,访问不同的表或从目的表选择更多的/不同的列,当前的索引可能会不起作用。需要分析说明SQL 代码无效率使用存在的索引或语句正在用表扫描搜集数据的地方。■ 磁盘I/O-数据库文件的增长-DB I/O 确定是否存在明显的磁盘I/O竞争,如果存在,需要关注频繁使用扩展段的数据库。DBA们应关注在一定的时间窗口内频繁使用扩展段的数据库。当SQL Server增大数据库文件时,文件倾向于破碎,操作将非常消耗CPU和I/O。
■ 磁盘I/O-数据库文件配置-DB I/O 确定是否存在明显的磁盘I/O竞争,如果存在,请关注配置糟糕的数据库文件是如何导致数据库内锁竞争的增加,进而形成资源瓶颈,减少应用之间的竞争。DBA应考察可能导致闩竞争的一些数据库文件的配置问题,包括:●数据文件和日志文件配置在同一磁盘设备上。 ●数据库文件数量少于可用的CPU数量,特别是TempDB数据库。 ●数据库文件数量少于可用的磁盘I/O设备数量。 |