查看: 12128|回复: 6

[精华] DB2查看存储过程里SQL语句的执行情况

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2007-8-9 15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
动态SQL可以用snapshot查看,存储过程里SQL语句的执行情况用event monitor查看。
但是event monitor没有记录SQL语句,而是记录了package id和Section  id。
根据package id和Section  id再查询系统表就可以得到原始的SQL语句。

例子如下:
(1)创建存储过程
create procedure sales_status
(in quota integer)
dynamic result sets 2
language sql
begin
  declare SQLSTATE char(5);
  
  declare rs cursor with return for
    select sales_person, sum(sales) as total_sales
      from sales
      group by sales_person
      having sum(sales) > quota;
   
  open rs;
  

  insert into tt1 values (1),(2),(3),(4),(5);

end
@

(2)创建event monitor,并捕获statement信息
db2 create event monitor ev2 for statements write to file 'D:\tmp'
db2 set event monitor ev2 state 1
db2 "call sales_status(10)"
db2 FLUSH EVENT MONITOR ev2
db2evmon -db sample -evm ev2 > 1.out

(3)查看输出文件
在call sales_status(10)语句后面,可以找到
8) Statement Event ...
  Appl Handle: 7
  Appl Id: *LOCAL.DB2.070809034142
  Appl Seq number: 00053

  Record is the result of a flush: FALSE
  -------------------------------------------
  Type     : Static
  Operation: Execute
  Section  : 2
  Creator  : DB2ADMIN
  Package  : P2323139
  Consistency Token  : oAfgMJIX
  Package Version ID  :
  Cursor   :
  Cursor was blocking: FALSE
  -------------------------------------------
  Start Time: 2007-08-09 12:33:22.394140
  Stop Time:  2007-08-09 12:33:22.394599
  Exec Time:  0.000459 seconds
  Number of Agents created: 1
  User CPU: 0.000000 seconds
  System CPU: 0.000000 seconds
  Fetch Count: 0
  Sorts: 0
  Total sort time: 0
  Sort overflows: 0
  Rows read: 1
  Rows written: 5
  ...
  
  10) Statement Event ...
  Appl Handle: 7
  Appl Id: *LOCAL.DB2.070809034142
  Appl Seq number: 00053

  Record is the result of a flush: FALSE
  -------------------------------------------
  Type     : Static
  Operation: Close
  Section  : 1
  Creator  : DB2ADMIN
  Package  : P2323139
  Consistency Token  : oAfgMJIX
  Package Version ID  :
  Cursor   : RS
  Cursor was blocking: TRUE
  -------------------------------------------
  Start Time: 2007-08-09 12:33:22.390159
  Stop Time:  2007-08-09 12:33:22.398984
  Exec Time:  0.008825 seconds
  Number of Agents created: 1
  User CPU: 0.000000 seconds
  System CPU: 0.000000 seconds
  Fetch Count: 3
  Sorts: 1
  Total sort time: 0
  Sort overflows: 0
  Rows read: 45
  Rows written: 0
  ...
  
  看到Package=P2323139, Section=1的SQL有  Rows read: 45
  看到Package=P2323139, Section=2的SQL有  Rows read: 1,  Rows written: 5
  
(4)查询系统表,就可以看到原始的SQL语句了
select s.STMTNO, s.SECTNO, s.TEXT  
from SYSCAT.STATEMENTS s
where s.PKGNAME='P2323139' ;

STMTNO      SECTNO TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ----------- ------ -------
          8      1 DECLARE RS cursor with return for    select SALES_PERSON, SUM(SALES) as TOTAL_SALES      from SALES      group by SALES_PERSON      having SUM(SALES) > :HV00008  :HI00008                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
         17      2 insert into TT1 values (1),(2),(3),(4),(5)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  2 条记录已选择。
论坛徽章:
233
天枰座
日期:2016-02-02 09:36:332012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-06-22 19:28:30现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-04-08 16:56:552011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
2#
发表于 2007-8-9 18:29 | 只看该作者
good,mark,以后看

使用道具 举报

回复
论坛徽章:
0
3#
发表于 2007-8-9 21:02 | 只看该作者
不错,看看

使用道具 举报

回复
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010广州亚运会纪念徽章:橄榄球
日期:2011-05-22 10:54:33管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:012010年世界杯参赛球队:丹麦
日期:2010-04-06 10:23:36
4#
发表于 2007-8-10 08:09 | 只看该作者
不错的tips,授精

使用道具 举报

回复
论坛徽章:
176
现任管理团队成员
日期:2011-05-07 01:45:08版主7段
日期:2012-07-05 02:21:03ITPUB长老会成员
日期:2015-05-07 15:11:10ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB牛人
日期:2010-10-25 12:41:322010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:19
5#
发表于 2009-6-26 15:08 | 只看该作者
看过,就UP一下!

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2012-3-1 13:51 | 只看该作者
感谢楼主的存储过程调试分享,我之前在做的时候都是通过创建日志表,然后在存储过程内部通过拼接SQL的方式存储要执行的SQL语句到日志表,再查看日志表,原来可以这样做,太感谢了!

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
7#
发表于 2012-9-17 10:34 | 只看该作者
多谢楼主分享!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表