DB2檢視執行計畫的幾種方式

2021-09-11 14:14:56 字數 1252 閱讀 4108

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...