Funktion zum Testen des Result-Caches unter Oracle 11g

Funktion zum Testen des Result Caches unter Oracle 11g Unter Oracle 11g wurde der Result Cache eingeführt. Dieses Skript liefert die Funktionsweise. Voraussetzung für dieses Skript ist das Schema HR mit mit dem Kennwort "hr".


CL SCR
CONN HR/hr
SET SERVEROUTPUT ON
SET ECHO ON
COL NAME FORMAT A30

CREATE OR REPLACE FUNCTION GET_EMP(EMPID IN NUMBER)
RETURN VARCHAR2
RESULT_CACHE RELIES_ON(EMPLOYEES)
IS
V_NAME VARCHAR2(100);
BEGIN
SELECT LAST_NAME || ' ' || FIRST_NAME
INTO V_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID=EMPID;
DBMS_LOCK.SLEEP(10);
RETURN V_NAME;
END;
/
PAUSE

EXEC DBMS_RESULT_CACHE.FLUSH
EXEC DBMS_RESULT_CACHE.BYPASS(FALSE)
EXEC DBMS_OUTPUT.PUT_LINE('ZEIT 1 ERSTER DURCHGANG:' || TO_CHAR(SYSDATE,'HH24:MI:SS'))
SELECT GET_EMP(100) AS NAME FROM DUAL;
EXEC DBMS_OUTPUT.PUT_LINE('ZEIT 2 ERSTER DURCHGANG:' || TO_CHAR(SYSDATE,'HH24:MI:SS'))

PAUSE

EXEC DBMS_OUTPUT.PUT_LINE('ZEIT 1 ZWEITER DURCHGANG:' || TO_CHAR(SYSDATE,'HH24:MI:SS'))
SELECT GET_EMP(100) AS NAME FROM DUAL;
EXEC DBMS_OUTPUT.PUT_LINE('ZEIT 2 ZWEITER DURCHGANG:' || TO_CHAR(SYSDATE,'HH24:MI:SS'))

PAUSE

DROP FUNCTION GET_EMP;