DB2動(dòng)態(tài)SQL的使用
下文對(duì)DB2動(dòng)態(tài)SQL的使用進(jìn)行了詳細(xì)的說(shuō)明,供您參考,如果您在DB2動(dòng)態(tài)SQL使用方面遇到過(guò)問(wèn)題,不妨一看,相信對(duì)您會(huì)有所啟迪。
DB2動(dòng)態(tài)SQL可以用snapshot查看
,存儲(chǔ)過(guò)程里SQL語(yǔ)句的執(zhí)行情況用event monitor查看。
(先挖個(gè)坑,以后補(bǔ)充)
補(bǔ)充1:event monitor(轉(zhuǎn)載)
運(yùn)行事件監(jiān)視器
與snapshot不同,事件監(jiān)視器對(duì)DB2 的性能影響極大。這是由于為每個(gè)事件對(duì)象寫(xiě)的信息的數(shù)量造成的。語(yǔ)句監(jiān)視器對(duì)性能的影響極大,因?yàn)閿?shù)據(jù)庫(kù)引擎必須為每個(gè)查詢(xún)執(zhí)行所有額外的工作:不只是能夠執(zhí)行查詢(xún),DB2 引擎還必須寫(xiě)出這條查詢(xún)的所有特征和運(yùn)行時(shí)信息。該信息必須寫(xiě)入文本文件,這樣會(huì)進(jìn)一步降低性能。
首先,必須創(chuàng)建事件監(jiān)視器,運(yùn)行監(jiān)視器來(lái)收集將要分析的數(shù)據(jù)。 rkmon是事件監(jiān)視器的名稱(chēng)
打開(kāi)一個(gè)新的 DB2 命令行處理器會(huì)話(huà),然后執(zhí)行以下DB2 UDB 命令:
db2 => connect to dbname
db2 => update monitor switches using statement on
db2 => create event monitor rkmon for statements write to file '/db2'
db2 => set event monitor rkmon state=1
使該會(huì)話(huà)一直處于打開(kāi)狀態(tài),直到這些數(shù)據(jù)庫(kù)活動(dòng)完成。請(qǐng)確保 /db2 目錄有足夠大的空間來(lái)保存跟蹤文件。這里選擇 /db2目錄是因?yàn)樗杏脩?hù)都可以訪(fǎng)問(wèn)該目錄;但也可以選擇使用其它目錄(請(qǐng)確保對(duì)于該目錄,DB2 有訪(fǎng)問(wèn)權(quán)限)。目錄的大小取決于用戶(hù)想要捕獲的 SQL 語(yǔ)句的數(shù)目。一開(kāi)始,***設(shè)為 500 MB。
執(zhí)行正常的數(shù)據(jù)庫(kù)活動(dòng),直到您想監(jiān)控的時(shí)段結(jié)束。這一監(jiān)控階段可以是問(wèn)題產(chǎn)生時(shí)期,也可以是通常的數(shù)據(jù)庫(kù)活動(dòng)過(guò)程。在 /db2 目錄下,您應(yīng)該可以看到一組擴(kuò)展名為“ .evt ”的文件。
回到在步驟 1 中所打開(kāi)的會(huì)話(huà),然后發(fā)出以下語(yǔ)句:
db2 => set event monitor rkmon state=0
db2 => terminate
在平常的命令提示符下,執(zhí)行以下命令:
$ db2evmon -path /db2 > sqltrace.txt
刪除rkmon
drop event monitor rkmon
以上就是DB2動(dòng)態(tài)SQL的使用介紹。
【編輯推薦】
DB2循環(huán)查詢(xún)的實(shí)現(xiàn)