Package DBMS_EXT_TABLE_CACHE

Le package DBMS_EXT_TABLE_CACHE fournit des routines permettant de configurer et de gérer la mise en cache des données fréquemment consultées à partir de tables externes et de tables exposées via des catalogues montés dans la base de données Autonomous AI.

Récapitulatif des sous-programmes DBMS_EXT_TABLE_CACHE

Ce tableau récapitule les sous-programmes inclus dans le package DBMS_EXT_TABLE_CACHE.

Sous-programme Description
Procédure ADD_BY_LIKE Ajoute un ou plusieurs fichiers qui correspondent aux filtres spécifiés dans le cache du lac.
Procédure ADD_FILE Ajoute un fichier au cache du lac.
Procédure ADD_LATEST_FILES Alimente un ou plusieurs fichiers en fonction de l'intervalle de temps indiqué par l'argument SINCE et l'horodatage en cours.
Procédure ADD_TABLE Ajoute des fichiers de la table source indiquée dans le cache de lac. La table source peut être une table externe ou une table exposée via un catalogue monté.
Procédure CLEAR Efface un cache de lac.
Procédure CREATE_CACHE Crée un cache de lac.
Désactiver la procédure Désactive un cache de lac.
Procédure DROP_BY_LIKE Supprimez des fichiers du cache du lac en fonction des filtres spécifiés.
Procédure DROP_CACHE Supprime un cache de lac.
Procédure DROP_FILE Supprime le fichier source spécifié du cache de lac.
ACTIVER la procédure Active un cache de lac précédemment désactivé.
Fonction GET_AVAILABLE_QUOTA Renvoie le quota de cache disponible restant pour un schéma ou pour un cache de table externe spécifique.
Fonction GET_GLOBAL_CACHE_QUOTA Renvoie le quota global de cache résolu.
Fonction GET_USER_PROPERTY Récupère la préférence de mise en cache pour un cache de lac.
Procédure REFRESH_TABLE Supprime les données mises en cache de tous les fichiers qui n'existent plus et charge les fichiers nouveaux ou nouvellement modifiés.
Procédure RETIRE_FILES Supprime un ou plusieurs fichiers du cache qui sont antérieurs à l'intervalle spécifié.
Procédure SET_USER_PROPERTY Spécifie la préférence de mise en cache pour le cache de lac.
Procédure VALIDATE Valide un cache de lac.

Procédure ADD_BY_LIKE

La procédure DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE charge un ou plusieurs fichiers source spécifiés dans le cache de lac.

Syntaxe

DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL,
      force        IN BOOLEAN  DEFAULT FALSE);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
path_filters PATH_FILTERS est un JSON_ARRAY de filtres de chemin utilisés pour rechercher des modèles spécifiés dans des URL de fichier.
esc_char

Spécifie le caractère d'échappement à utiliser dans les filtres de chemin. Si le caractère d'échappement précède "%" ou "_" dans le modèle, le caractère spécial est interprété littéralement et non comme un caractère spécial correspondant au modèle.

Ce paramètre est facultatif et sa valeur par défaut est NULL.

force

Force l'écrasement des fichiers existants spécifiés dans le cache même si les fichiers n'ont pas été modifiés.

Ce paramètre est facultatif et la valeur par défaut du paramètre force est FALSE.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
    owner        => 'SALES',
    table_name   =>'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Remarque sur l'utilisation

  • Par défaut, la procédure DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE ignore le chargement des fichiers dans les cas suivants :

    • Les fichiers étaient précédemment mis en cache et toujours disponibles dans le cache.

    • Les fichiers n'ont pas été modifiés depuis leur dernière mise en cache.

    Cependant, vous pouvez utiliser le paramètre force pour écraser les fichiers dans le cache même si les fichiers n'ont pas été modifiés.

Procédure ADD_FILE

La procédure DBMS_EXT_TABLE_CACHE.ADD_FILE charge le fichier indiqué dans le cache de lac.

Syntaxe

DBMS_EXT_TABLE_CACHE.ADD_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2,
      force        IN BOOLEAN DEFAULT FALSE);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
file_url Indique l'URL du fichier.
force

Force l'écrasement des fichiers existants spécifiés dans le cache même si les fichiers n'ont pas été modifiés.

Ce paramètre est facultatif et la valeur par défaut du paramètre force est FALSE.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Notes d'utilisation

  • La procédure DBMS_EXT_TABLE_CACHE.ADD_FILE ignore le chargement du fichier dans le cache si le fichier indiqué existe dans le cache et n'a pas été modifié depuis le dernier cache du fichier.

  • Vous pouvez utiliser le paramètre force pour écraser le fichier dans le cache, même si le fichier n'a pas été modifié.

Procédure ADD_LATEST_FILES

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES alimente un ou plusieurs fichiers dans le cache de lac. Les fichiers sont renseignés en fonction de l'intervalle de temps déterminé par l'argument SINCE et l'horodatage en cours.

Syntaxe

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
      owner        IN  VARCHAR2,
      table_name   IN  VARCHAR2,
      since        IN  INTERVAL DAY TO SECOND,
      max_files    IN  NUMBER,
      force        IN  BOOLEAN DEFAULT FALSE);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
since Le paramètre since accepte une valeur INTERVAL DAY TO SECOND et sert à calculer l'intervalle de temps entre la valeur since et l'horodatage en cours. L'intervalle de temps qui en résulte est ensuite utilisé pour renseigner les fichiers, en fonction de leur heure de dernière modification.
max_files

Indiquez la valeur max_files pour limiter le nombre de fichiers pouvant être renseignés dans le cache de lac.

Ce paramètre est facultatif et est défini par défaut sur illimité lorsqu'il n'est pas spécifié.

force

Force l'écrasement des fichiers existants spécifiés dans le cache même si les fichiers n'ont pas été modifiés.

Ce paramètre est facultatif et sa valeur par défaut est FALSE.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    since        => INTERVAL '7' DAY,
    max_files    => 5,
    force        => TRUE);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Remarque sur l'utilisation

  • Par défaut, la procédure DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES ignore le remplissage des fichiers dans les cas suivants :

    • Les fichiers spécifiés étaient précédemment mis en cache et toujours disponibles dans le cache.

    • Les fichiers spécifiés n'ont pas été modifiés depuis leur dernier cache.

    Cependant, vous pouvez utiliser le paramètre force pour écraser les fichiers dans le cache même si les fichiers n'ont pas été modifiés.

Procédure ADD_TABLE

La procédure DBMS_EXT_TABLE_CACHE.ADD_TABLE charge une table entière ou un certain pourcentage de la table source dans le cache. La table source peut être une table externe ou une table exposée via un catalogue monté.

Syntaxe

DBMS_EXT_TABLE_CACHE.ADD_TABLE (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2,
      percent_files IN NUMBER DEFAULT NULL,
      force         IN BOOLEAN DEFAULT FALSE);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
percent_files

Indique le pourcentage des données de table à mettre en cache. Par exemple de la 1 à la 100.

Par défaut, tous les fichiers sont chargés.

force

Force l'écrasement des fichiers spécifiés dans le cache même s'ils n'ont pas été modifiés.

Ce paramètre est facultatif et la valeur par défaut pour force est FALSE.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_TABLE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    percent_files => 50);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Notes d'utilisation

  • DBMS_EXT_TABLE_CACHE.ADD_TABLE tente de mettre en cache la table entière ou un pourcentage spécifié du contenu du fichier dans le cache.

  • Les paramètres percent_files et force s'excluent mutuellement.

  • Par défaut, la procédure DBMS_EXT_TABLE_CACHE.ADD_TABLE ignore le chargement des fichiers dans les cas suivants :

    • Les fichiers spécifiés étaient précédemment mis en cache et toujours disponibles dans le cache.

    • Les fichiers spécifiés n'ont pas été modifiés depuis leur dernier cache.

    Cependant, vous pouvez utiliser le paramètre force pour écraser les fichiers dans le cache même si les fichiers n'ont pas été modifiés.

Procédure CLEAR

La procédure DBMS_EXT_TABLE_CACHE.CLEAR supprime tous les fichiers d'un cache de lac tout en conservant le cache.

Syntaxe

DBMS_EXT_TABLE_CACHE.CLEAR (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.CLEAR (
    owner         => 'SALES',
    table_name    => 'STORE_SALES');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Procédure CREATE_CACHE

La procédure DBMS_EXT_TABLE_CACHE.CREATE_CACHE crée un cache de lac dans une instance de base de données Autonomous AI.

Syntaxe

DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      partition_type   IN    VARCHAR2,
      col_subset     IN VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
partition_type

Les valeurs valides pour le paramètre partition_type sont les suivantes :

  • FILE : partitionne le cache de lac à l'aide des colonnes invisibles FILE$PATH et FILE$NAME.

  • PATH : partitionne le cache de lac à l'aide de la colonne invisible FILE$PATH.

file$path : indique le texte du chemin du fichier jusqu'au début du nom de l'objet.

file$name : indique le nom de l'objet, y compris tout le texte qui suit le texte final "/".

Pour plus d'informations, reportez-vous à Colonnes de métadonnées de table externe.

col_subset col_subset indique les colonnes à mettre en cache. Indiquez un JSON_ARRAY de noms de colonne de table externe ; seules ces colonnes sont mises en cache dans le cache de lac.

col_subset est facultatif. Si vous n'indiquez pas col_subset, le cache du lac inclut toutes les colonnes par défaut.

Exemples

Exemple : créer un cache de lac incluant toutes les colonnes

BEGIN
    DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES',
      partition_type => 'FILE');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Exemple : création d'un cache de lac avec un sous-ensemble de colonnes

BEGIN
    DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
    owner          => 'SALES',
    table_name     => 'STORE_SALES',
    partition_type => 'FILE',
    col_subset     => '["PROD_ID","STORE_ID","SALES_AMT"]');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Remarque sur l'utilisation

  • DBMS_EXT_TABLE_CACHE.CREATE_CACHE crée le cache de lac dans une instance de base de données Autonomous AI. La création d'un cache est similaire à la création d'une table dans le schéma de base de données.

Désactiver la procédure

La procédure DBMS_EXT_TABLE_CACHE.DISABLE désactive le cache de lac indiqué. Le cache est marqué comme désactivé, mais les données qu'il contient sont conservées.

Syntaxe

DBMS_EXT_TABLE_CACHE.DISABLE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2
);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.

Exemple

BEGIN
    DBMS_EXT_TABLE_CACHE.DISABLE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Remarque sur l'utilisation

  • DBMS_EXT_TABLE_CACHE.DISABLE ne supprime aucune donnée du cache de lac. Au lieu de cela, il marque le cache comme DISABLED, ce qui signifie que l'optimiseur ne peut pas utiliser le cache pour les réécritures de requête.

Procédure DROP_BY_LIKE

La procédure DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE supprime un ou plusieurs fichiers du cache de lac. Les fichiers sont supprimés en fonction des filtres spécifiés.

Syntaxe

DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
path_filters PATH_FILTERS est un JSON_ARRAY de filtres de chemin utilisés pour rechercher des modèles spécifiés dans des URL de fichier.
esc_char

Spécifie le caractère d'échappement à utiliser dans les filtres de chemin. Si le caractère d'échappement précède "%" ou "_" dans le modèle, le caractère spécial est interprété littéralement et non comme un caractère spécial correspondant au modèle.

Ce paramètre est facultatif et sa valeur par défaut est NULL.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Procédure DROP_CACHE

La procédure DBMS_EXT_TABLE_CACHE.DROP_CACHE supprime le cache de lac indiqué. Cette procédure supprime le cache et libère l'espace de stockage associé au cache.

Syntaxe

DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2
);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.

Exemple

BEGIN
    DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Remarque sur l'utilisation

  • La suppression d'un cache enlève ses métadonnées du dictionnaire de données et supprime toutes ses données en cache.

Procédure DROP_FILE

La procédure DBMS_EXT_TABLE_CACHE.DROP_FILE supprime le fichier indiqué d'un cache de lac.

Syntaxe

DBMS_EXT_TABLE_CACHE.DROP_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
file_url Indique l'URL du fichier.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

ACTIVER la procédure

La procédure DBMS_EXT_TABLE_CACHE.ENABLE active un cache de lac précédemment désactivé. Lorsqu'un cache est créé, il est activé par défaut.

Syntaxe

DBMS_EXT_TABLE_CACHE.ENABLE (
    owner         IN    VARCHAR2,
    table_name    IN    VARCHAR2
);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.ENABLE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES'
 );
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Fonction GET_AVAILABLE_QUOTA

Utilisez la fonction DBMS_EXT_TABLE_CACHE.GET_AVAILABLE_QUOTA pour extraire le quota de cache disponible restant pour un schéma ou pour un cache de table externe spécifique.

Syntaxe

DBMS_EXT_TABLE_CACHE.GET_AVAILABLE_QUOTA (
    owner       IN   VARCHAR2,
    table_name  IN   VARCHAR2 DEFAULT NULL,
    no_cache    OUT  BOOLEAN,
    total_quota OUT  NUMBER
)
RETURN NUMBER;

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table externe. Si table_name est défini sur NULL, la fonction renvoie les informations de quota pour le schéma.
no_cache Renvoie TRUE lorsqu'aucun quota de cache n'est disponible.
total_quota Renvoie le quota total disponible pour le schéma ou le cache.

Valeur de retour

Renvoie le quota disponible restant.

Exemples

Exemple de vérification du quota disponible pour un schéma :

SET SERVEROUTPUT ON;
DECLARE
  l_available_quota NUMBER;
  l_total_quota     NUMBER;
  l_no_cache        BOOLEAN;
BEGIN
  l_available_quota := DBMS_EXT_TABLE_CACHE.GET_AVAILABLE_QUOTA(
                         owner       => 'HR',
                         table_name  => NULL,
                         no_cache    => l_no_cache,
                         total_quota => l_total_quota);

  IF l_no_cache THEN
    DBMS_OUTPUT.PUT_LINE('NO_CACHE=TRUE');
  ELSE
    DBMS_OUTPUT.PUT_LINE('NO_CACHE=FALSE');
  END IF;

  DBMS_OUTPUT.PUT_LINE('TOTAL_QUOTA=' || l_total_quota);
  DBMS_OUTPUT.PUT_LINE('AVAILABLE_QUOTA=' || l_available_quota);
END;
/

Exemple de vérification du quota disponible pour un cache de table externe spécifique :

SET SERVEROUTPUT ON;
DECLARE
  l_available_quota NUMBER;
  l_total_quota     NUMBER;
  l_no_cache        BOOLEAN;
BEGIN
  l_available_quota := DBMS_EXT_TABLE_CACHE.GET_AVAILABLE_QUOTA(
                         owner       => 'SALES',
                         table_name  => 'STORE_SALES',
                         no_cache    => l_no_cache,
                         total_quota => l_total_quota);

  IF l_no_cache THEN
    DBMS_OUTPUT.PUT_LINE('NO_CACHE=TRUE');
  ELSE
    DBMS_OUTPUT.PUT_LINE('NO_CACHE=FALSE');
  END IF;

  DBMS_OUTPUT.PUT_LINE('TOTAL_QUOTA=' || l_total_quota);
  DBMS_OUTPUT.PUT_LINE('AVAILABLE_QUOTA=' || l_available_quota);
END;
/

Fonction GET_GLOBAL_CACHE_QUOTA

Utilisez la fonction DBMS_EXT_TABLE_CACHE.GET_GLOBAL_CACHE_QUOTA pour extraire le quota global de cache résolu.

Syntaxe

DBMS_EXT_TABLE_CACHE.GET_GLOBAL_CACHE_QUOTA
RETURN NUMBER;

Valeur de retour

Renvoie le quota de cache global résolu basé sur GLOBAL_CACHE_SIZE et GLOBAL_CACHE_PERCENT.

Notes d'utilisation

  • Si GLOBAL_CACHE_SIZE et GLOBAL_CACHE_PERCENT sont définis, la valeur la plus élevée est utilisée.

  • Si aucune propriété de quota global n'est explicitement définie, GLOBAL_CACHE_PERCENT prend par défaut la valeur 20.

Exemple

SET SERVEROUTPUT ON;
DECLARE
  l_global_quota NUMBER;
BEGIN
  l_global_quota := DBMS_EXT_TABLE_CACHE.GET_GLOBAL_CACHE_QUOTA;
  DBMS_OUTPUT.PUT_LINE('GLOBAL_CACHE_QUOTA=' || l_global_quota);
END;
/

Fonction GET_USER_PROPERTY

La fonction renvoie la préférence de mise en cache pour le schéma indiqué et renvoie une valeur Number.

MAX_CACHE_SIZE et MAX_CACHE_PERCENT sont des contrôles de quota au niveau du schéma dans le modèle de quota global.

Syntaxe

DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
    property_name   IN   VARCHAR2,
    owner           IN   VARCHAR2 DEFAULT NULL);

RETURN NUMBER;

Paramètres

Paramètre Description
property_name

Indique le nom de propriété.

Les valeurs valides pour property_name sont les suivantes :

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

owner Indique le nom du schéma.

Valeurs renvoyées

Valeur de retour Description
Valeur MAX_CACHE_SIZE ou MAX_CACHE_PERCENT dans Number. Selon le paramètre property_name, la fonction renvoie la valeur MAX_CACHE_SIZE ou MAX_CACHE_PERCENT.

Notes d'utilisation

  • Lorsque le quota global de cache est connu, MAX_CACHE_PERCENT est basé sur le quota global résolu. Sinon, il est basé sur le quota du tablespace du schéma ou du cache.

  • Si MAX_CACHE_SIZE et MAX_CACHE_PERCENT sont définis, la valeur la plus élevée est utilisée.

  • Si aucune propriété de quota de niveau schéma n'est explicitement définie, MAX_CACHE_PERCENT prend par défaut la valeur 20.

  • Les caches manuels et les caches AUTO utilisent le même pool de quotas.

Exemple

SET SERVEROUTPUT ON;
DECLARE
  l_max_cache_sz NUMBER;
BEGIN
  l_max_cache_sz := DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY(
                      property_name => 'MAX_CACHE_SIZE',
                      owner         => 'SALES');
  DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE=' || l_max_cache_sz);
END;
/

Procédure REFRESH_TABLE

La procédure DBMS_EXT_TABLE_CACHE.REFRESH_TABLE supprime les données mises en cache de tous les fichiers qui n'existent plus et charge les fichiers nouveaux ou nouvellement modifiés.

Syntaxe

DBMS_EXT_TABLE_CACHE.REFRESH_TABLE (
    owner        IN VARCHAR2,
    table_name   IN VARCHAR2);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.

Exemple

Cet exemple actualise les données mises en cache pour la table STORE_SALES dans le schéma SALES.

BEGIN
  DBMS_EXT_TABLE_CACHE.REFRESH_TABLE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES');
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Procédure RETIRE_FILES

DBMS_EXT_TABLE_CACHE.RETIRE_FILES supprime les fichiers du cache qui sont plus anciens que l'intervalle indiqué. Les fichiers sont supprimés en fonction de l'intervalle de temps calculé à l'aide de la valeur du paramètre BEFORE.

Syntaxe

DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        IN VARCHAR2,
    table_name   IN VARCHAR2,
    before       IN INTERVAL DAY TO SECOND
);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
before Le paramètre before accepte une valeur INTERVAL DAY TO SECOND et sert à calculer l'intervalle de temps entre la valeur before et l'horodatage en cours. L'intervalle de temps qui en résulte est ensuite utilisé pour supprimer les fichiers du cache.

Exemple

BEGIN
 DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    before       => INTERVAL '30' DAY);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.

Procédure SET_USER_PROPERTY

La procédure DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY définit la préférence de mise en cache pour un schéma.

Utilisez MAX_CACHE_SIZE et MAX_CACHE_PERCENT pour définir les préférences de quota au niveau du schéma pour les caches basés sur une stratégie.

Syntaxe

DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name    IN    VARCHAR2,
    property_value   IN    NUMBER,
    owner            IN    VARCHAR2 DEFAULT NULL);

Paramètres

Paramètre Description
property_name

Indique le nom de propriété.

Les valeurs valides pour property_name sont les suivantes :

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

property_value Spécifie la valeur de propriété.
owner Indique le nom du schéma.

Notes d'utilisation

  • Lorsque le quota global de cache est connu, MAX_CACHE_PERCENT est basé sur le quota global résolu. Sinon, il est basé sur le quota du tablespace du schéma ou du cache.

  • Si MAX_CACHE_SIZE et MAX_CACHE_PERCENT sont définis, la valeur la plus élevée est utilisée.

  • Si aucune propriété de quota de niveau schéma n'est explicitement définie, MAX_CACHE_PERCENT prend par défaut la valeur 20.

  • Si la valeur MAX_CACHE_SIZE est supérieure à GLOBAL_CACHE_SIZE, la base de données génère une erreur.

  • Les caches manuels et les caches AUTO utilisent le même pool de quotas.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY(
    property_name  => 'MAX_CACHE_PERCENT',
    property_value => 100,
    owner          => 'SALES');
END;
/

Procédure VALIDATE

La procédure DBMS_EXT_TABLE_CACHE.VALIDATE valide le cache de lac. Une erreur est signalée si la table source référencée est introuvable dans la base de données.

Syntaxe

DBMS_EXT_TABLE_CACHE.VALIDATE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      raise_errors     IN    BOOLEAN DEFAULT TRUE);

Paramètres

Paramètre Description
owner Indique le nom du schéma.
table_name Indique le nom de la table source. La table source peut être une table externe ou une table exposée via un catalogue monté.
raise_errors Indique si un cache de lac est marqué comme non valide.

Exemple

BEGIN
  DBMS_EXT_TABLE_CACHE.VALIDATE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    raise_errors  => TRUE);
END;
/

Cette procédure prend également en charge les tables exposées via des catalogues montés.