Ensemble DBMS_CACHE

L'ensemble DBMS_CACHE facilite la mise en mémoire cache automatique pour les caches de table externe dans une instance de base de données d'intelligence artificielle autonome.

Sommaire des sous-programmes DBMS_CACHE

Ce tableau résume les sous-programmes inclus dans l'ensemble DBMS_CACHE.

Sous-programme Description

Procédure de nettoyage

Efface tous les caches de table externe pour un utilisateur spécifié.

GET_GLOBAL_PROPERTY Procédure

Extrait les propriétés de mise en cache des tables externes.

GET_USER_PROPERTY Procédure

Extrait les propriétés de mise en cache de table externe pour un utilisateur spécifié.

Procédure REFRESH

Actualise tous les caches de table externe pour un utilisateur spécifié.

SET_GLOBAL_PROPERTY Procédure

Spécifie la préférence de mise en cache de la table externe pour tous les utilisateurs de base de données.

SET_USER_PROPERTY Procédure

Spécifie la préférence de mise en cache de la table externe pour un utilisateur spécifié.

Procédure de nettoyage

Utilisez la procédure DBMS_CACHE.CLEAR pour supprimer tous les caches de table externe pour un utilisateur spécifié.

La procédure DBMS_CACHE.CLEAR supprime tous les caches de table externe et libère l'espace de stockage, de la même manière que la commande DROP fonctionne sur une table de base de données.

Syntaxe

DBMS_CACHE.CLEAR (
    owner    IN   VARCHAR2
);

Paramètres

Paramètre Description

owner

Spécifie le nom du schéma.

Exemple

BEGIN
 DBMS_CACHE.CLEAR (
    owner => 'SALES');                                                                
END;                                                                 
/

Note d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour effacer une mémoire cache.

GET_GLOBAL_PROPERTY Procédure

La procédure DBMS_CACHE.GET_GLOBAL_PROPERTY extrait les préférences de mise en cache de la table externe pour tous les utilisateurs de la base de données. Cette procédure est surchargée.

Syntaxe

DBMS_CACHE.GET_GLOBAL_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_num  OUT  VARCHAR2);

DBMS_CACHE.GET_GLOBAL_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_str  OUT  VARCHAR2);

Paramètres

Paramètre Description

property_name

Spécifie le nom de la propriété.

Les valeurs valides pour property_name sont les suivantes :
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • MAX_REFRESH_WINDOW

  • AUTO_REFRESH_MODE

property_value_num

Extrait une valeur NUMBER pour le nom de propriété spécifié.

property_value_str

Extrait une valeur STRING pour le nom de propriété spécifié.

Exemple

SET SERVEROUTPUT ON;
DECLARE
   cache_property NUMBER;
BEGIN
   DBMS_CACHE.GET_GLOBAL_PROPERTY (
      property_name  => 'MAX_CACHE_SIZE',
      property_value => cache_property
   );
 DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/

Note d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour exécuter cette procédure.

SET_GLOBAL_PROPERTY Procédure

Utilisez la procédure DBMS_CACHE.SET_GLOBAL_PROPERTY pour définir les propriétés de mise en mémoire cache AUTO pour tous les utilisateurs de base de données, y compris ceux qui activent la mise en mémoire cache automatique pour la base de données. Cette procédure est surchargée.

Par défaut, la mise en cache automatique des tables externes est désactivée. Pour l'activer, réglez la taille de la mémoire cache à une valeur différente de zéro à l'aide de la propriété MAX_CACHE_SIZE ou MAX_CACHE_SIZE de la procédure DBMS_CACHE.SET_GLOBAL_PROPERTY. Cela permet une mise en mémoire cache automatique globale pour la base de données.

Syntaxe


DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name      IN   VARCHAR2,
    property_value_num IN   NUMBER);

DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name      IN   VARCHAR2,
    property_value_str IN   VARCHAR2);

Paramètres

Paramètre Description

property_name

Spécifie le nom de la propriété.

Les valeurs valides pour property_name sont les suivantes :
  • MAX_CACHE_PERCENT : La propriété MAX_CACHE_PERCENT spécifie le pourcentage maximal du quota de stockage affecté à un utilisateur pouvant être utilisé pour les caches de table externe.

  • MAX_CACHE_SIZE : La propriété MAX_CACHE_SIZE spécifie la quantité maximale de stockage, en octets, qu'un utilisateur peut utiliser pour les caches de table externe.

  • MAX_REFRESH_WINDOW : La propriété MAX_REFRESH_WINDOW spécifie la fenêtre de temps maximale, en secondes, autorisée pour l'actualisation des caches de table externe.

  • AUTO_REFRESH_MODE : Spécifie la portée à laquelle l'actualisation est effectuée pour les mémoires caches AUTO.

    Les valeurs valides pour AUTO_REFRESH_MODE sont les suivantes :
    • ALL : Tous les caches AUTO existants dans la base de données sont actualisés et, si nécessaire, de nouveaux caches sont créés. Il s’agit de la valeur par défaut.

    • CURRENT : Seules les mémoires caches existantes sont actualisées, aucune nouvelle mémoire cache n'est ajoutée.

    • NEW : Seules les nouvelles mémoires caches sont créées.

property_value_num

Fournit une valeur NUMBER pour le nom de propriété spécifié.

property_value_str

Fournit une valeur STRING pour le nom de propriété spécifié.

Exemples

BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'MAX_CACHE_SIZE', 
    property_value_num  => 50);                                                                
END;                                                                 
/
BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'AUTO_REFRESH_MODE', 
    property_value_str  => 'NEW');                                                              
END;                                                                 
/
BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'MAX_REFRESH_WINDOW', 
    property_value_num  => 20);                                                              
END;                                                                 
/

Notes d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour exécuter cette procédure.

  • La propriété MAX_REFRESH_WINDOW spécifie, en seconde, le temps maximal autorisé pour l'actualisation des caches de table externe. Si l'actualisation dépasse la limite spécifiée, l'actualisation de la mémoire cache se termine normalement et tous les caches admissibles restants sont mis en file d'attente pour le prochain cycle d'actualisation.

  • Lorsque vous actualisez les caches à l'aide de la procédure DBMS_CACHE.REFRESH, le paramètre de procédure a priorité sur la propriété AUTO_REFRESH_MODE.

    Pour plus d'informations, voir Procédure REFRESH.

Procédure REFRESH

Utilisez la procédure DBMS_CACHE.REFRESH pour actualiser tous les caches de table externe AUTO pour un utilisateur spécifié.

Syntaxe

DBMS_CACHE.REFRESH (       
      owner          IN VARCHAR2,
      refresh_type   IN VARCHAR2 DEFAULT ALL
);

Paramètres

Paramètre Description

owner

Spécifie le nom du schéma.

refresh_type

Spécifie l'option d'actualisation.

Les valeurs refresh_type valides sont les suivantes :
  • ALL : Tous les caches AUTO existants pour le schéma spécifié sont actualisés et, si nécessaire, de nouveaux caches sont créés pour l'utilisateur spécifié. Il s’agit de la valeur par défaut.

  • CURRENT : Seules les mémoires caches existantes sont actualisées, aucune nouvelle mémoire cache n'est ajoutée pour l'utilisateur spécifié.

  • NEW : Seuls les nouveaux caches sont créés pour l'utilisateur spécifié.

Ce paramètre est facultatif et prend par défaut la valeur ALL.

Exemple

BEGIN
    DBMS_CACHE.REFRESH (      
      owner          => 'SALES',
      refresh_type   => 'CURRENT');                                                                 
END;                                                                 
/

Notes d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour exécuter cette procédure.

  • Si vous ne spécifiez pas de valeur pour le paramètre refresh_type, Oracle effectue une actualisation en fonction de la valeur auto_refresh_mode. La valeur par défaut pour auto_refresh_mode est ALL.

  • Lorsque la propriété MAX_REFRESH_WINDOW est définie, Oracle tente d'effectuer une actualisation dans la fenêtre spécifiée. Si l'actualisation dépasse la limite spécifiée, l'actualisation de la mémoire cache se termine normalement et tous les caches admissibles restants sont mis en file d'attente pour le prochain cycle d'actualisation.

  • Tous les caches AUTO de la base de données sont gérés à l'aide d'un algorithme d'expulsion similaire à l'algorithme Least Recent Used (LRU). En cas de sous-pression d'espace, les caches qui ont fait l'objet d'un accès le moins récent sont automatiquement supprimés lors du processus d'actualisation pour libérer l'espace de stockage.

GET_USER_PROPERTY Procédure

Utilisez la procédure DBMS_CACHE.GET_USER_PROPERTY pour extraire les propriétés de mise en cache automatique d'un utilisateur.

Syntaxe

DBMS_CACHE.GET_USER_PROPERTY (
    property_name      IN   VARCHAR2,
    owner              IN   VARCHAR2 DEFAULT NULL,
    property_value_str OUT  VARCHAR2);

DBMS_CACHE.GET_USER_PROPERTY (
    property_name      IN   VARCHAR2,
    owner              IN   VARCHAR2 DEFAULT NULL,
    property_value_num OUT  NUMBER);

Paramètres

Paramètre Description

property_name

Spécifie le nom de la propriété.

Les valeurs valides pour property_name sont les suivantes :
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE

owner

Spécifie le nom du schéma. Ce paramètre est facultatif et prend par défaut le schéma courant.

property_value_str

Extrait une valeur STRING pour le nom de propriété spécifié.

property_value_num

Extrait une valeur NUMBER pour le nom de propriété spécifié.

Exemple

SET SERVEROUTPUT ON;
DECLARE
   cache_property NUMBER;
BEGIN
   DBMS_CACHE.GET_USER_PROPERTY (
      property_name  => 'MAX_CACHE_SIZE',
      owner          => NULL,
      property_value => cache_property
   );
 DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/

Note d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour exécuter cette procédure.

SET_USER_PROPERTY Procédure

Utilisez la procédure DBMS_CACHE.SET_USER_PROPERTY pour définir les propriétés de mise en mémoire cache AUTO pour un schéma spécifié, y compris celles qui activent la mise en mémoire cache automatique pour le schéma. Cette procédure est surchargée.

Syntaxe

DBMS_CACHE.SET_USER_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_num  IN   NUMBER,
    owner               IN   VARCHAR2 DEFAULT NULL);

DBMS_CACHE.SET_USER_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_str  IN   NUMBER,    
    owner               IN   VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description

property_name

Spécifie le nom de la propriété.

Les valeurs valides pour property_name sont les suivantes :
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE : Spécifie la portée à laquelle l'actualisation est effectuée pour les mémoires caches AUTO.

    Les valeurs valides pour AUTO_REFRESH_MODE sont les suivantes :
    • ALL : Tous les caches AUTO existants du schéma sont actualisés et, si nécessaire, de nouveaux caches sont créés pour l'utilisateur spécifié. Il s’agit de la valeur par défaut.

    • CURRENT : Seules les mémoires caches existantes sont actualisées, aucune nouvelle mémoire cache n'est ajoutée pour l'utilisateur spécifié.

    • NEW : Seuls les nouveaux caches sont créés pour l'utilisateur spécifié.

property_value_num

Fournit une valeur NUMBER pour le nom de propriété spécifié.

property_value_str

Fournit une valeur STRING pour le nom de propriété spécifié.

owner

Spécifie le nom du schéma. Ce paramètre est facultatif et prend par défaut le schéma courant.

Exemple

BEGIN
 DBMS_CACHE.SET_USER_PROPERTY (
        property_name       => 'MAX_CACHE_SIZE', 
        property_value_num  => 50,
        owner               => 'SALES');                                                                
END;                                                                 
/

Note d'utilisation

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur l'ensemble DBMS_CACHE pour exécuter cette procédure.