2010-02-18 8 views
6

Je suis en train d'utiliser sur 11.2.0, d'Oracle Function Result Cache donc je l'ai fait le test suivant:Comment activer la fonction Résultat Cache

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; 

Mon exemple imprime Called chaque fois, cependant.
J'ai aussi essayé d'autres exemples trouvés en ligne, mais le cache n'est pas utilisé.

J'ai essayé ALTER SYSTEM SET result_cache_max_size = 10485760;
Ne fonctionne toujours pas.

J'ai essayé ALTER SESSION SET result_cache_mode=FORCE; (ce qui ne devrait pas être nécessaire) - n'a pas aidé.

SELECT dbms_result_cache.status FROM dual; renvoie toujours DISABLED.

Qu'est-ce que je fais mal?

Répondre

15

Quelle édition utilisez-vous? La fonctionnalité de cache n'est disponible que dans Enterprise Edition. Par conséquent, si vous l'essayez sur une installation Standard Edition, cela ne fonctionnerait pas. C'est dans le Licensing Guide.

+0

Personal Edition peut l'avoir, mais Personal Edition est Windows uniquement et 11gR2 n'est pas encore sorti sur Windows –

+0

Ouch. Essayé avec Enterprise et cela fonctionne comme un charme :) Merci beaucoup! –

+1

@Peter Lang - La plupart des nouvelles fonctionnalités sexy d'Oracle ont tendance à être seulement EE (quand elles ne sont pas des extras payants) donc le Guide de licence est une lecture indispensable. – APC

0

Je vais ajouter cette information ici parce que je l'ai trouvé utile pour résoudre mon problème similaire.

si vous obtenez un statut des personnes handicapées ou BYPASS rappeler

* La zone de mémoire cache de résultat est situé dans la piscine partagée ainsi, la valeur de result_cache_max_size est consommée à partir de la taille piscine partagée. *

vérifier si les paramètres suivants

show parameter shared_pool_size 
show parameter result_cache_max_size 
show parameter result_cache_mode 

vous pouvez aussi essayer

BEGIN 
    dbms_result_cache.ByPass(False); 
END; 
/
Questions connexes