Question

Je suis en train d'utiliser Oracle Fonction Résultat Cache sur 11.2.0 , donc je l'ai fait le test suivant:

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 essayé aussi 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; (qui ne devrait pas être nécessaire) -. N'a pas aidé

SELECT dbms_result_cache.status FROM dual; retourne toujours DISABLED.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Quelle édition utilisez-vous? La fonctionnalité de cache est disponible uniquement dans Enterprise Edition, donc si vous essayez ceci sur une édition standard installer ne fonctionnerait pas. Il est dans le .

Autres conseils

Im allons ajouter ces informations 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 souvenir

* 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 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;
/
scroll top