不管调优什么 SQL,都应该执行以下任务:
- 评估当前性能,并记录到文档。
- 与创建查询的人会谈,并得出合理的性能预期。
- 建立查询的业务目标。
- 对于来自生产系统的查询,获得一个 Explain 计划。
- 如果可行的话,在测试系统上重建环境,并重新运行查询。
- 对于与查询相关的所有表,确信最近在这些表上执行了 Runstats 或与之等价的远程命令。
- 确保各个表的重组,以匹配它们的集群索引。
- 查找 WHERE 子句中索引列上的 SQL 函数,这些函数可能导致优化器忽略了索引。
- 确保在 WHERE 子句中尽可能使用索引列。
- 查找笛卡儿积(Cartesian products)。
- 跟踪每一项更改的效果,每次跟踪一项。
资料来源:http://www.ibm.com/developerworks/cn/data/library/techarticles/mag_05q1howard/
提高DB2查询性能的常用方法:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0709zhangdw/