WEB开发网
开发学院数据库DB2 DB2 LUW SQL 调优指南 阅读

DB2 LUW SQL 调优指南

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: -- 打开 SQL 语句的 Monitordb2updatemonitorswitchesusingSTATEMENTon-- 获得 SQL 语句执行的信息db2getsnapshotfordynamicsqlondbnamedb2batch:可以用于一次执行一个或多个 SQL 语句,并记录执行

-- 打开 SQL 语句的 Monitor

 db2 update monitor switches using STATEMENT on 

-- 获得 SQL 语句执行的信息

 db2 get snapshot for dynamic sql on dbname 

db2batch:可以用于一次执行一个或多个 SQL 语句,并记录执行时间。

db2exfmt:DB2 的一种 EXPLAIN 工具。相较于其他的工具(Visual Explain,db2expln),它能提供更多的关于 SQL 查询计划的信息。

关于上述三个工具的使用方法可以查参照参考资源。

SQL 设计的优化

本章着眼于 SQL 语句设计的优化,在保证功能不变的前提下,通过改变 SQL,得到最优的逻辑优化结果,为让 DB2 生成最优的查询执行计划创造条件。对有性能问题的 SQL 首先要查看 DB2 中其内部表示形式中是否已经最优。db2exfmt 的输出 Optimized Statement 就是 SQL 的内部表示形式。这个内部 SQL 是经过 DB2 的查询重写,也就是逻辑优化后形成的。可以从下面几个方面从中找出 SQL 的设计问题:

1. 选择谓词

检查选择谓词是否足够简洁。选择谓词要尽量采用简单的形式,如:列名 = 常数表达式,这样便于匹配索引。要避免使用类型转换,如果有类型转换应该显式的写出转换函数并放在表达式的常数一边,例如 :

 cast( colum_char10 as int) = 100 

应该写成 :

 colum_char10 = cast( 100 as char(10)) 

不要使用一些不必要的谓词。不必要的谓词不但增加了系统的计算代价,而且会使对中间结果的估算不准确,导致较差的查询计划。

另外,使用参数标记(Parameter Marker)时,尽量利用 Cast 函数表明它的类型,以免产生不必要的类型转换。

上一页  1 2 3 4 5 6 7  下一页

Tags:DB LUW SQL

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