1.檢視儲存過程中sql的執行計畫
已知儲存過程名稱為procname1,模式名schema1,
第一步,
select specificname from syscat.proceduces where procname=
'proname1'
and procschema=
'schema1'
假設獲得specificname=sql180123123456。
第二步,
select bname from sysibm.sysdependencies where dname=
'sql180123123456'
假設獲得bname=p67894321。
第三步,
執行下列命令:
db2expln -d dbname -c schema1 -p p67894321 -o output.out -s 0 -g
若只知道需要檢視執行計畫的sql,且該sql涉及的表只在很少儲存過程中使用,則可以利用表名獲取繫結的package名稱:
select pkname,bname from syscat.packagedep where bname=
't1'
2.重新生成執行計畫
第一步,將sql語句儲存到檔案中如1.sql
第二步,執行:
db2expln -d dbname -f 1.sql -g -t -z ';'
3.使用命令列得到執行計畫
第一步,連線到資料庫
第二步,設定成解釋模式,此時不會執行sql語句
db2 set current explain mode explain
第三步,執行sql:
db2 "select * from t1 join t2 where t1.id = t2.id"
第四步,關閉解釋模式:
db2 set current explain mode no
第五步,得到執行計畫:
db2exfmt -d dbname -g tic -w -l -s % -n % -o db2exmt.out
DB2常見的幾種錯誤
1.encoding not supported 原因 sun jdk有兩種編碼集 一種是基本編碼集 包含在lib rt.jar中 另外一種是擴充套件的編碼集 包含在lib charsets.jar中 之所以有這種錯誤是因為資料庫伺服器的 頁在擴充套件編碼集中,但是jdk中沒有安裝擴充套件編碼集。解...
DB2執行指令碼
通過db2命令直接執行指令碼語句 db2 tvf x 檔名及路徑 eg db2 tvf e test.sql 命令解釋 s 在命令出錯時停止執行 t 設定語句終止字元 v 回送當前命令 f 讀取輸入檔案 t 為預設終止字元 各語句以 終止 通過 d也可以設定其它終止字元,如以 終止則相應命令為 db...
DB2 執行SQL檔案
db2 執行sql檔案 首先是新建資料庫,可以使用control center 控制中心 也可以使用command line 命令列 不過對於本次新建,我更加願意使用command editor 命令列處理器 開啟之後,可以直接寫如下sql文 create database mydb2 on d u...