WEB开发网
开发学院数据库DB2 利用优化概要文件进行 SQL 调优 阅读

利用优化概要文件进行 SQL 调优

 2010-08-13 00:00:00 来源:WEB开发网   
核心提示: 清单 12 清除缓存中的优化概要文件FLUSHOPTIMIZATIONPROFILECACHEXQPENG.HSJOINFLUSHOPTIMIZATIONPROFILECACHEALL应用优化概要文件对于清单 13 中的查询语句,基于统计信息的估算,利用优化概要文件进行 SQL 调优(7),优化

清单 12 清除缓存中的优化概要文件

 FLUSH OPTIMIZATION PROFILE CACHE XQPENG.HSJOIN 
 FLUSH OPTIMIZATION PROFILE CACHE ALL 

应用优化概要文件

对于清单 13 中的查询语句,基于统计信息的估算,优化器得出表 t2 中的符合条件的数据行数多于表 t1 中的符合条件的数据行数,故会将 t2 表作为 Hash Join 中的小表来首先生成 Hash 值列表,然后在遍历 t1 表进行匹配。然而根据用户的实际经验,这是一个错误的估计,因此我们通过一个特定的优化概要文件,来指示让优化器生成我们希望的访问计划,即由 t1 作为 Hash Join 中的小表来生成 Hash 值列表。清单 14 和 15 给出了优化器在给定优化概要文件之前和之后所生成的访问计划。

清单 13. SQL 查询语句

 select t1.c3,t2.c3 from t2 ,t1 where t1.c1=t2.c1 
 and t1.c1<100 and t2.c2 >60 

清单 14. 没有指定优化概要文件时的访问计划

 Access Plan: 
 ----------- 
 Total Cost: 804.126 
 Query Degree: 1 
 
 Rows 
 RETURN 
 ( 1) 
 Cost 
 I/O 
 | 
 154.429 
 HSJOIN 
 ( 2) 
 804.126 
 52 
 /-----+------\ 
 200.185 77.2143 
 TBSCAN TBSCAN 
 ( 3) ( 4) 
 385.013 416.576 
 26 26 
 | | 
 2000 2000 
 TABLE: XQPENG TABLE: XQPENG 
   T2 T1 
 Q2 Q1 

清单 15. 指定优化概要文件后的访问计划

 Access Plan: 
 ----------- 
 Total Cost: 804.126 
 Query Degree: 1 
 
 Rows 
 RETURN 
 ( 1) 
 Cost 
 I/O 
 | 
 154.429 
 HSJOIN 
 ( 2) 
 804.126 
 52 
 /-----+------\ 
 200.185 77.2143 
 TBSCAN TBSCAN 
 ( 3) ( 4) 
 385.013 416.576 
 26 26 
 | | 
 2000 2000 
 TABLE: XQPENG TABLE: XQPENG 
   T1 T2 
 Q1 Q2 

结束语

如果在应用了所有的常用调优技术之后,例如建索引,收集统计信息等,SQL 优化器给出的执行计划仍然具有明显的缺陷,这时用户就可以考虑采用优化概要文件的方式,来指示优化器生成指定的执行计划。但是建议用户在使用这个特性时要谨慎,对于优化概要文件,优化器需要额外的查询匹配开销,此外,优化概要文件里的特定内容也可能会随着时间和数据库状态的变化而改变。所以,需要定期地检查它们的实现,以便从它们的使用中获取最大限度的收益。

上一页  2 3 4 5 6 7 

Tags:利用 优化 概要

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接