Posted on 2009-02-12 11:11
Prayer 閱讀(1912)
評論(1) 編輯 收藏 引用 所屬分類:
DB2
重綁定是對先前已經(jīng)與數(shù)據(jù)庫進行了綁定的應用程序重新生成包(Package)的過程。當應用程序?qū)陌?,被標記為不合法(Invalid)或不可操作(Inoperative)的時候,用戶必須對它進行重綁定。有的情況下,包雖然依然合法,但是用戶為了提高程序的運行性能,如利用新的索引,或者在運行完RUNSTATS命令后利用新的系統(tǒng)優(yōu)化數(shù)據(jù),用戶也會進行包的重綁定。
如果應用程序的包依賴于某些數(shù)據(jù)對象,如表,觸發(fā)器等。當這些數(shù)據(jù)對象被刪除時,包將會被設(shè)置為不合法(Invalid)。不合法的包在下一次被執(zhí)行的時候,會被數(shù)據(jù)庫管理器自動執(zhí)行重綁定的操作。用戶必須注意的是,如果系統(tǒng)自動執(zhí)行重綁定失敗,則程序在執(zhí)行的時候會產(chǎn)生不可預料的錯誤。這時候也許程序的語句并沒有錯誤,錯誤是由重綁定操作失敗造成的。
但是如果用戶的包依賴的數(shù)據(jù)對象有用戶自定義函數(shù)(UDF),則當該UDF被刪除后,包會被設(shè)置為不可操作(Inoperative)。被設(shè)置為不可操作的包,必須要用戶手動進行重綁定。
另外當用戶希望修改綁定過程的參數(shù)時,也需要重新執(zhí)行綁定命令。
執(zhí)行重綁定的命令可以是BIND或者REBIND