Cómo habilitar Función Resultado caché
Pregunta
Estoy tratando de utilizar de Oracle caché Función Resultado en 11.2.0 , así que hice la prueba siguiente:
CREATE OR REPLACE FUNCTION get_test_value
RETURN NUMBER
RESULT_CACHE
AS
BEGIN
dbms_output.put_line( 'Called' );
RETURN 0;
END;
SELECT get_test_value FROM dual;
Mis ejemplo imprime Called
cada vez, sin embargo.
También probé algunos otros ejemplos que se encuentran en línea, pero el caché no se utiliza.
He intentado ALTER SYSTEM SET result_cache_max_size = 10485760;
todavía no funciona.
He intentado ALTER SESSION SET result_cache_mode=FORCE;
(que no debería ser necesario.) - no ayudó
SELECT dbms_result_cache.status FROM dual;
siempre devuelve DISABLED
.
¿Qué estoy haciendo mal?
Otros consejos
Im que va a añadir esta información aquí porque he encontrado que es útil en la solución de mi problema similar.
Si usted está recibiendo un estado de DISABLED o BYPASS recordar
* El área de memoria cache de resultados se encuentra en la zona compartida es así, el valor de result_cache_max_size se consume desde el tamaño piscina compartida. *
a fin de comprobar los parámetros siguientes
show parameter shared_pool_size
show parameter result_cache_max_size
show parameter result_cache_mode
También puede intentar
BEGIN
dbms_result_cache.ByPass(False);
END;
/