教你在IBM DB2數(shù)據(jù)庫中進(jìn)行包的重綁定
重綁定是對(duì)先前已經(jīng)與數(shù)據(jù)庫進(jìn)行了綁定的應(yīng)用程序重新生成包(Package)的過程。當(dāng)應(yīng)用程序?qū)?yīng)的包,被標(biāo)記為不合法(Invalid)或不可操作(Inoperative)的時(shí)候,用戶必須對(duì)它進(jìn)行重綁定。有的情況下,包雖然依然合法,但是用戶為了提高程序的運(yùn)行性能,如利用新的索引,或者在運(yùn)行完RUNSTATS命令后利用新的系統(tǒng)優(yōu)化數(shù)據(jù),用戶也會(huì)進(jìn)行包的重綁定。
如果應(yīng)用程序的包依賴于某些數(shù)據(jù)對(duì)象,如表,觸發(fā)器等。當(dāng)這些數(shù)據(jù)對(duì)象被刪除時(shí),包將會(huì)被設(shè)置為不合法(Invalid)。不合法的包在下一次被執(zhí)行的時(shí)候,會(huì)被數(shù)據(jù)庫管理器自動(dòng)執(zhí)行重綁定的操作。用戶必須注意的是,如果系統(tǒng)自動(dòng)執(zhí)行重綁定失敗,則程序在執(zhí)行的時(shí)候會(huì)產(chǎn)生不可預(yù)料的錯(cuò)誤。這時(shí)候也許程序的語句并沒有錯(cuò)誤,錯(cuò)誤是由重綁定操作失敗造成的。
但是如果用戶的包依賴的數(shù)據(jù)對(duì)象有用戶自定義函數(shù)(UDF),則當(dāng)該UDF被刪除后,包會(huì)被設(shè)置為不可操作(Inoperative)。被設(shè)置為不可操作的包,必須要用戶手動(dòng)進(jìn)行重綁定。
另外當(dāng)用戶希望修改綁定過程的參數(shù)時(shí),也需要重新執(zhí)行綁定命令。
執(zhí)行重綁定的命令可以是BIND或者REBIND,具體的命令使用方法用戶可以參考COMMAND REFERENCE。
