db2查看执行计划
db2, 执行计划
如果没有建立过执行计划表的话,先要建立执行计划表
连接数据库,并执行脚本文件EXPLAIN.DDL
db2 connect to db2inst1
db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL
开始执行计划模式
db2 connect to db2inst1
db2 set current explain mode explain
这点和Oracle里的10046及sql_trace一样。
此过程中的sql执行将被trace
关闭执行计划模式
db2 set current explain mode no
这里和sql_trace false, event off一样了
最后用特定的工具将执行计划给提取出来,这里和oracle里的tkprof一样,
其实很多东西都有相通的地方
db2exfmt -d db2inst1 -g TIC -w -l -s % -n % -o explainplan.out
查看导出的文件 explainplan.out即可
这里是通过命令行来执行的比较方便,当然你可以通过图形化的工具也可以得到。
和Oracle比较如果这里对sql的执行计划的trace和Oracle基本上一样。不过如果是要提取应用里跑的sql和别的session里跑的sql,这个方法就不行了,而在ORacle里可以通过
dbms_system.set_sql_trace_in_session
或者
dbms_system.set_ev来实现
比如
SQL> select sid,serial#,username from v$session where username is not null;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
19 378 SCOTT
SQL> exec dbms_system.set_sql_trace_in_session(19,378,true)
PL/SQL procedure successfully completed.
SQL> exec dbms_system.set_ev(19,378,10046,8,'SCOTT');
PL/SQL procedure successfully completed.
。不知道DB2里有没有类似的处理。好像还有snapshot和event monitor,还要继续学习
看来有Oracle方面的经验对学习DB2还是有一点帮助的。继续学习中....
***相关主题****************************************
db2中怎样移动数据文件
DB2 SQL存储过程语法官方权威指南
DB2离线和在线全备、增量备份及恢复的操作步骤
RHEL AS 4上安装DB2
深入理解嵌套循环执行计划
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com