PLSQL Language Reference-PL/SQL子程式-PL/SQL函式結果快取-開啟函式結果快取
PL/SQL函式結果快取
PL/SQL函式結果快取機制提供了語言支援和系統管理的方法來在SGA中快取PL/SQL函式結果,這個快取的結果對於執行你的應用程式的每個會話都是可用的。快取機制高效並易於使用,可以將你從開發自己的快取和快取管理策略中解放出來。
為函式開啟結果快取,使用RESULT CACHE子句。當結果快取函式被呼叫的的時候,系統會檢查緩衝區,如果緩衝區包含前面使用相同引數呼叫該函式產生的結果集,則系統會將快取的結果返回給呼叫者,而不會執行函式體;如果快取不包含結果,則系統會執行函式體,並在將控制權返回給呼叫者之前,將結果集加入到快取中。
注意:如果函式執行時異常結束,則異常的結果不會儲存到快取中。
快取可以積累多個結果集,對於每個唯一的引數值組合都會有一個結果,結果快取函式都被呼叫。如果系統需要更多的記憶體,它會使一個或多個快取結果過期(刪除)
Oracle資料庫會自動檢測結果快取函式在執行時查詢的資源(表和檢視)。如果對這些資料來源的任何改變被提交了,則快取的結果會變成無效,需要重新計算。
經常被呼叫的,但它依賴的資訊卻很少改變或根本不改變的函式,最適合應用結果快取。
開啟函式結果快取
--函式結果快取 CREATE OR REPLACE PACKAGE department_pkg IS TYPE dept_info_record IS RECORD ( dept_name departments.department_name%TYPE, mgr_name employees.last_name%TYPE, dept_size PLS_INTEGER);
-- 對結果進行快取的函式 FUNCTION get_dept_info (dept_id PLS_INTEGER) RETURN dept_info_record RESULT_CACHE;
END department_pkg; /
CREATE OR REPLACE PACKAGE BODY department_pkg IS -- 函式定義 FUNCTION get_dept_info (dept_id PLS_INTEGER) RETURN dept_info_record --結果集依賴於DEPARTMENTS和EMPLOYEES表,對錶的任何改變都會使快取結果無效 RESULT_CACHE RELIES_ON (DEPARTMENTS, EMPLOYEES) IS rec dept_info_record; BEGIN SELECT department_name INTO rec.dept_name FROM departments WHERE department_id = dept_id;
SELECT e.last_name INTO rec.mgr_name FROM departments d, employees e WHERE d.department_id = dept_id AND d.manager_id = e.employee_id;
SELECT COUNT(*) INTO rec.dept_size FROM EMPLOYEES WHERE department_id = dept_id;
RETURN rec; END get_dept_info; END department_pkg; / |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1132832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Reference-PL/SQL子程式-PL/SQL函式結果快取(二)SQL函式快取
- Oracle11新特性——PLSQL函式快取結果(一)OracleSQL函式快取
- Oracle11新特性——PLSQL函式快取結果(三)OracleSQL函式快取
- Oracle11新特性——PLSQL函式快取結果(二)OracleSQL函式快取
- Oracle11g新特性-PLSQL函式快取結果(一)[zt]OracleSQL函式快取
- PLSQL Language Reference-PL/SQL語言基礎-表示式-PL/SQL表示式中的SQL函式SQL函式
- PLSQL Language Reference-PL/SQL子程式-過載子程式SQL
- Oracle11新特性——SQL快取結果集(五)OracleSQL快取
- Oracle11新特性——SQL快取結果集(三)OracleSQL快取
- PLSQL Language Referenc-PL/SQL靜態SQL-查詢結果集處理SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-BOOLEAN表示式SQLBoolean
- PLSQL Language Reference-PL/SQL概覽-PL/SQL架構SQL架構
- PLSQL Language Reference-PL/SQL子程式-子程式的副作用(side effects)SQLIDE
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的優點SQL
- PLSQL Language Reference-PL/SQL子程式-過載子程式-子程式過載錯誤SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-帶有子查詢的查詢結果集處理SQL
- PLSQL Language Reference-PL/SQL子程式-子程式引數-子程式引數傳遞方法SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL語言基礎SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-短路計算SQL
- PLSQL Language Reference-PL/SQL子程式-過載子程式-不可以過載的子程式SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-使用顯式游標OPEN-FETCH-CLOSE處理查詢結果集SQL
- 精讀《函式快取》函式快取
- PLSQL Language Referenc-PL/SQL子程式-子程式呼叫SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的主要功能SQL
- DUMP函式結果的意思函式
- PLSQL Language Reference-PL/SQL語言基礎-表示式-比較操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-邏輯操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-連線操作符SQL
- oracle result cache 結果集快取的使用Oracle快取
- PL/SQL 函式 包SQL函式
- PLSQL Language Referenc-PL/SQL子程式-使用子程式的原因SQL
- PLSQL Language Referenc-PL/SQL子程式-前向宣告SQL
- 快取函式的簡單使用快取函式
- DDL,DML操作對結果快取的影響快取
- 11g新特性之結果集快取快取
- PLSQL Language Reference-PL/SQL子程式-子程式引數-實參的位置、名稱和混合標記SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.1 新功能SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.2.0.1新功能SQL