一、使用package查看执行计划
1.找到数据库中所有的package:
>db2 describe table syscat.packagedep
Data type Column
Column name schema Data type name Length Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
PKGSCHEMA SYSIBM VARCHAR 128 0 No
PKGNAME SYSIBM VARCHAR 128 0 No
BINDER SYSIBM VARCHAR 128 0 No
BINDERTYPE SYSIBM CHARACTER 1 0 No
BTYPE SYSIBM CHARACTER 1 0 No
BSCHEMA SYSIBM VARCHAR 128 0 No
BNAME SYSIBM VARCHAR 128 0 No
TABAUTH SYSIBM SMALLINT 2 0 Yes
VARAUTH SYSIBM SMALLINT 2 0 Yes
UNIQUE_ID SYSIBM CHARACTER 8 0 No
PKGVERSION SYSIBM VARCHAR 64 0 Yes
2.查询某张表对应的package的名字:
db2 "select * from syscat.packagedep where bname = '<table_name>'"
3.使用db2expln命令对package进行解析,查看执行计划:
db2expln -d 数据库名 -c 用户名 -p 绑定包名 -o 输出文件 -s 0 -g
二、使用命令行查看执行计划
1.如果第一次执行,请先 connect to dbname,
2.执行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立执行计划表
3.db2 set current explain mode explain
设置成解释模式,并不真正执行下面将发出的sql命令
4.db2 "select order_number from <table_name>where order_number='000000000036' and mer_ID='111' and order_time='20121111111111' and order_type='01' "
执行你想要分析的sql语句
5.db2 set current explain mode no
取消解释模式
6.db2exfmt -d sample -g TIC -w -l -s % -n % -o db2exmt.out
执行计划输出到文件db2exmt.out
1.找到数据库中所有的package:
>db2 describe table syscat.packagedep
Data type Column
Column name schema Data type name Length Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
PKGSCHEMA SYSIBM VARCHAR 128 0 No
PKGNAME SYSIBM VARCHAR 128 0 No
BINDER SYSIBM VARCHAR 128 0 No
BINDERTYPE SYSIBM CHARACTER 1 0 No
BTYPE SYSIBM CHARACTER 1 0 No
BSCHEMA SYSIBM VARCHAR 128 0 No
BNAME SYSIBM VARCHAR 128 0 No
TABAUTH SYSIBM SMALLINT 2 0 Yes
VARAUTH SYSIBM SMALLINT 2 0 Yes
UNIQUE_ID SYSIBM CHARACTER 8 0 No
PKGVERSION SYSIBM VARCHAR 64 0 Yes
2.查询某张表对应的package的名字:
db2 "select * from syscat.packagedep where bname = '<table_name>'"
3.使用db2expln命令对package进行解析,查看执行计划:
db2expln -d 数据库名 -c 用户名 -p 绑定包名 -o 输出文件 -s 0 -g
二、使用命令行查看执行计划
1.如果第一次执行,请先 connect to dbname,
2.执行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立执行计划表
3.db2 set current explain mode explain
设置成解释模式,并不真正执行下面将发出的sql命令
4.db2 "select order_number from <table_name>where order_number='000000000036' and mer_ID='111' and order_time='20121111111111' and order_type='01' "
执行你想要分析的sql语句
5.db2 set current explain mode no
取消解释模式
6.db2exfmt -d sample -g TIC -w -l -s % -n % -o db2exmt.out
执行计划输出到文件db2exmt.out