Introduction to SQL Tuning
SQL调优简介
SQL调优涉及以下基本步骤:
■通过查看系统中可用的过去SQL执行历史记录,识别负责大量应用程序工作负载和系统资源的高负载或顶级SQL语句
■验证查询优化器为这些语句生成的执行计划是否合理执行
■实施纠正措施,以便为性能较差的SQL语句生成更好的执行计划
重复前面的步骤,直到系统性能达到令人满意的水平或不再调整语句。
调整的目标
调整系统的目的是减少系统最终用户的响应时间,或减少用于处理相同工作的资源。 您可以通过以下几种方式实现这两个目标:
■减少工作量
■平衡工作量
■并行化工作负载
减少工作量
SQL调优通常涉及找到处理相同工作负载的更有效方法。 可以更改语句的执行计划,而无需更改功能以减少资源消耗。
有关如何使用资源的两个示例如下:
1.如果通常执行的查询必须访问表中的一小部分数据,那么数据库可以通过使用索引更有效地执行它。 通过创建此类索引,可以减少使用的资源量。
2.如果用户正在查看以特定排序顺序返回的10,000行的前20行,并且如果索引可以满足查询(和排序顺序),则用户无需访问和排序 10,000行查看前20行。
平衡工作量
当真实用户连接到系统时,系统通常倾向于在白天使用高峰,而夜间使用率较低。 如果您可以安排非关键报告和批处理作业在夜间运行并减少白天的并发性,那么数据库可以为当天更重要的程序释放资源。
并行化工作负载
访问大量数据的查询(典型的数据仓库查询)通常可以并行运行。 并行性对于减少低并发数据仓库中的响应时间非常有用。 但是,对于往往是高并发性的OLTP环境,并行性会通过增加程序的总体资源使用量而对其他用户产生负面影响。