db2解释存储过程

时间:2014-12-29 08:27:23

标签: db2 explain ibm-data-studio

如何在IBM Data Studio中解释存储过程?

我知道存在db2expln命令。但我想要一个解决方案来解释图形界面中的SP。

另外我知道选择一个查询然后右键单击它,存在open visual explain菜单做解释但不知道解释SP的方法,以便我可以为该SP设置输入值。

感谢

1 个答案:

答案 0 :(得分:1)

如果我已正确理解您的要求,您有一个程序,您希望在该程序中解释查询计划。我会发明一些虚假的东西来解释我的想法:

create table t 
(  x int not null primary key
,  y int not null) @

create procedure p (n int)
language sql
begin
    declare c cursor for
    select count(1) from t where y = n;
end @

假设您想在游标中解释查询计划:

db2 "explain plan for select count(1) from t where y = n"
[...]
SQL0206N  "N" is not valid in the context where it is used.  SQLSTATE=42703

由于n未绑定,编译器会抱怨。但是,将n更改为主变量或参数标记会很好(请注意":")

db2 "explain plan for select count(1) from t where y = :n"

或:

db2 "explain plan for select count(1) from t where y = ?"

现在您可以使用db2exfmt来查看计划:

db2exfmt -d sample -g -1 | tee q.plan

Access Plan:
-----------
Total Cost:         0.00644873
Query Degree:       1

            Rows 
           RETURN
           (   1)
            Cost 
             I/O 
             |
              1 
           GRPBY 
           (   2)
          0.0063121 
              0 
             |
              0 
           FETCH 
           (   3)
         0.00627372 
              0 
       /-----+-----\
      0               0 
   IXSCAN    TABLE:    LELLE   
   (   4)             T
 0.00613403          Q1
      0 
     |
      0 
INDEX:    SYSIBM  
SQL141230182649950
        Q1

我认为您会发现db2exfmt是一个比db2expln更好的工具,您将获得更多有关您计划的详细信息。