IBM Data Studio でストアド プロシージャを説明するにはどうすればよいですか?
コマンドが存在することは知っていますdb2expln
。しかし、グラフィカル インターフェイスで SP を説明するソリューションが必要です。
また、クエリを選択して右クリックするとopen visual explain
、説明を行うメニューが存在することはわかっていますが、そのSPの入力値を設定できるようにSPを説明する方法がわかりません。
ありがとう
IBM Data Studio でストアド プロシージャを説明するにはどうすればよいですか?
コマンドが存在することは知っていますdb2expln
。しかし、グラフィカル インターフェイスで SP を説明するソリューションが必要です。
また、クエリを選択して右クリックするとopen visual explain
、説明を行うメニューが存在することはわかっていますが、そのSPの入力値を設定できるようにSPを説明する方法がわかりません。
ありがとう
私があなたの要件を正しく理解していれば、その手順内のクエリの計画を説明したい手順があります。私の考えを説明するために、いくつかの偽物を発明します。
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
。計画の詳細が得られます。