explain
1.如果第一次执行,请先(在dbinst用户下) connect to dbname,
执行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立执行计划表
2.db2 set current explain mode explain(在数据库所在用户下)
设置成解释模式,并不真正执行下面将发出的sql命令
3.执行你想要分析的sql语句
......
db2 "SELECT DISTINCT RTRIM(MARKET_CODE),RTRIM(CURRENCY_TYPE),t.* FROM KS.BRANCH_PARAM t WHERE PARAM_CODE='0986'"
db2 "SELECT a.name, a.cert_type, a.cert_no, A.CUST_NO,A.OPEN_DATE,A.BRANCH_CODE ,a.* FROM KS.CUST_BASE_INFO A where a.cert_no='0050000101' "
......
4.db2 set current explain mode no
取消解释模式
5.db2exfmt -d ksdbs -g TIC -w -l -s % -n % -o db2exmt.out
执行计划输出到文件db2exmt.out
Expln:
单表:
db2expln -d <database> -c <schema> -p <package> -o <explan out file> -s 0 -g
全库:
db2 connect to database
db2 -x "select 'db2expln -d <database> -c '||rtrim(ltrim(pkgschema))||' -p '||rtrim(ltrim(pkgname))||' -o '||rtrim(ltrim(pkgschema))||'.'||rtrim(ltrim(pkgname))||'.out -s 0 -g' from syscat.packages where pkgschema <> 'NULLID' with ur"> exp.sh
chmod +x exp.sh
./exp.sh
注意:<database>替换成数据库名称如:ksdbs,全库执行时最好新建文件夹,会生成很多文件。
db2expln 输出的描述
文档->性能调整->查询优化->说明工具->SQL 和 XQuery 说明工具->db2expln 输出的描述