PLSQL Language Reference-PL/SQL子程式-PL/SQL函式結果快取(二)

LuiseDalian發表於2014-03-30

開發帶有函式結果快取的應用

開發使用結果快取函式的應用時,不要對於給定的引數值的集合,假定函式體執行的次數。

在一些情況下,結果快取函式的函式體需要執行:

n  資料庫例項的會話第1次使用這些引數呼叫該函式。

n  當對於這些引數的快取結果無效時

n  當對於這些引數的快取結果過期。如果系統需要記憶體,則可能會拋棄最老的快取值。

n  當函式繞過快取(有多種情況)

結果快取函式的限制

函式為了成為結果快取函式,必須滿足下面的條件:

n  不是被定義在擁有呼叫者許可權的模組中或匿名塊中。

n  不是管道式的表函式

n  不引用資料字典表、臨時表、序列和不確定的SQL函式。

n  沒用OUT, IN OUT模式的引數

n  沒有下列型別的IN模式引數。BLOBCLOBNCLOBREF CURSOR、集合、物件、記錄

n  返回值型別不能為BLOBCLOBNCLOBREF CURSOR、物件、包含不支援返回型別的記錄或集合。

建議結果快取函式也滿足下面的要求:

n  沒有副作用

n  不依賴於特定會話的設定

n  不依賴於特定會話的應用上下文

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1132833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章