Paquete DBMS_CACHE

El paquete DBMS_CACHE facilita el almacenamiento en caché automático de las cachés de tablas externas en una instancia de Autonomous AI Database.

Resumen de Subprogramas DBMS_CACHE

En esta tabla se resumen los subprogramas incluidos en el paquete DBMS_CACHE.

Subprograma Descripción

Procedimiento CLEAR

Borra todas las cachés de tablas externas para un usuario especificado.

GET_GLOBAL_PROPERTY Procedimiento

Recupera las propiedades de almacenamiento en caché de tablas externas.

GET_USER_PROPERTY Procedimiento

Recupera propiedades de almacenamiento en caché de tablas externas para un usuario especificado.

Procedimiento REFRESH

Refresca todas las cachés de tablas externas para un usuario especificado.

SET_GLOBAL_PROPERTY Procedimiento

Especifica la preferencia de almacenamiento en caché de tablas externas para todos los usuarios de la base de datos.

SET_USER_PROPERTY Procedimiento

Especifica la preferencia de almacenamiento en caché de tabla externa para un usuario especificado.

Procedimiento CLEAR

Utilice el procedimiento DBMS_CACHE.CLEAR para borrar todas las cachés de tablas externas para un usuario especificado.

El procedimiento DBMS_CACHE.CLEAR borra todas las cachés de tablas externas y libera el espacio de almacenamiento, de forma similar a cómo funciona el comando DROP en una tabla de base de datos.

Sintaxis

DBMS_CACHE.CLEAR (
    owner    IN   VARCHAR2
);

Parámetros

Parámetro Descripción

owner

Especifica el nombre del esquema.

Ejemplo

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

Nota de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para borrar una caché.

GET_GLOBAL_PROPERTY Procedimiento

El procedimiento DBMS_CACHE.GET_GLOBAL_PROPERTY recupera las preferencias de almacenamiento en caché de tablas externas para todos los usuarios de la base de datos. Este procedimiento está sobrecargado.

Sintaxis

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);

Parámetros

Parámetro Descripción

property_name

Especifica el nombre de la propiedad.

A continuación, se muestran los valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • MAX_REFRESH_WINDOW

  • AUTO_REFRESH_MODE

property_value_num

Recupera un valor NUMBER para el nombre de propiedad especificado.

property_value_str

Recupera un valor STRING para el nombre de propiedad especificado.

Ejemplo

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;
/

Nota de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para ejecutar este procedimiento.

SET_GLOBAL_PROPERTY Procedimiento

Utilice el procedimiento DBMS_CACHE.SET_GLOBAL_PROPERTY para definir las propiedades de almacenamiento en caché de AUTO para todos los usuarios de la base de datos, incluidos los que activan el almacenamiento en caché automático para la base de datos. Este procedimiento está sobrecargado.

Por defecto, el almacenamiento automático en caché de las tablas externas está desactivado. Para activarlo, defina el tamaño de caché en un valor distinto de cero mediante la propiedad MAX_CACHE_SIZE o MAX_CACHE_SIZE del procedimiento DBMS_CACHE.SET_GLOBAL_PROPERTY. Esto permite el almacenamiento en caché automático global para la base de datos.

Sintaxis


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);

Parámetros

Parámetro Descripción

property_name

Especifica el nombre de la propiedad.

A continuación, se muestran los valores válidos para property_name:
  • MAX_CACHE_PERCENT: la propiedad MAX_CACHE_PERCENT especifica el porcentaje máximo de la cuota de almacenamiento asignada de un usuario que se puede utilizar para cachés de tablas externas.

  • MAX_CACHE_SIZE: la propiedad MAX_CACHE_SIZE especifica la cantidad máxima de almacenamiento, en bytes, que un usuario puede utilizar para las cachés de tablas externas.

  • MAX_REFRESH_WINDOW: la propiedad MAX_REFRESH_WINDOW especifica la ventana de tiempo máxima, en segundos, permitida para refrescar las cachés de tablas externas.

  • AUTO_REFRESH_MODE: especifica el ámbito en el que se realiza el refrescamiento para las cachés AUTO.

    A continuación, se muestran los valores válidos para AUTO_REFRESH_MODE:
    • ALL: todas las cachés AUTO existentes en la base de datos se refrescan y, si es necesario, se crean nuevas cachés. Éste es el valor por defecto.

    • CURRENT: solo se refrescan las cachés existentes, no se agregan nuevas cachés.

    • NEW: solo se crean nuevas cachés.

property_value_num

Proporciona un valor NUMBER para el nombre de propiedad especificado.

property_value_str

Proporciona un valor STRING para el nombre de propiedad especificado.

Ejemplos

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;                                                                 
/

Notas de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para ejecutar este procedimiento.

  • La propiedad MAX_REFRESH_WINDOW especifica, en segundo lugar, el tiempo máximo permitido para refrescar las cachés de tablas externas. Si el refrescamiento supera el límite especificado, el refrescamiento de caché se cierra normalmente y las cachés elegibles restantes se ponen en cola para el siguiente ciclo de refrescamiento.

  • Al refrescar las cachés mediante el procedimiento DBMS_CACHE.REFRESH, el parámetro de procedimiento tiene prioridad sobre la propiedad AUTO_REFRESH_MODE.

    Consulte Procedimiento REFRESH para obtener más información.

Procedimiento REFRESH

Utilice el procedimiento DBMS_CACHE.REFRESH para refrescar todas las cachés de tablas externas de AUTO para un usuario especificado.

Sintaxis

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

Parámetros

Parámetro Descripción

owner

Especifica el nombre del esquema.

refresh_type

Especifica la opción de refrescamiento.

A continuación se muestran los valores válidos de refresh_type:
  • ALL: todas las cachés AUTO existentes para el esquema especificado se refrescan y, si es necesario, se crean nuevas cachés para el usuario especificado. Éste es el valor por defecto.

  • CURRENT: solo se refrescan las cachés existentes, no se agregan nuevas cachés para el usuario especificado.

  • NEW: solo se crean nuevas cachés para el usuario especificado.

Este parámetro es opcional y se define por defecto en ALL.

Ejemplo

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

Notas de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para ejecutar este procedimiento.

  • Si no especifica un valor para el parámetro refresh_type, Oracle realiza el refrescamiento basado en el valor auto_refresh_mode. El valor por defecto para auto_refresh_mode es ALL.

  • Cuando se define la propiedad MAX_REFRESH_WINDOW, Oracle intenta realizar el refrescamiento en la ventana especificada. Si el refrescamiento supera el límite especificado, el refrescamiento de caché se cierra normalmente y las cachés elegibles restantes se ponen en cola para el siguiente ciclo de refrescamiento.

  • Todas las cachés AUTO de la base de datos se gestionan mediante un algoritmo de expulsión similar al de menos utilizados recientemente (LRU). Cuando hay presión de espacio, las cachés a las que se ha accedido menos recientemente se borran automáticamente durante el proceso de refrescamiento para liberar el espacio de almacenamiento.

GET_USER_PROPERTY Procedimiento

Utilice el procedimiento DBMS_CACHE.GET_USER_PROPERTY para recuperar propiedades de almacenamiento en caché automático para un usuario.

Sintaxis

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);

Parámetros

Parámetro Descripción

property_name

Especifica el nombre de la propiedad.

A continuación, se muestran los valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE

owner

Especifica el nombre del esquema. Este parámetro es opcional y se define por defecto en el esquema actual.

property_value_str

Recupera un valor STRING para el nombre de propiedad especificado.

property_value_num

Recupera un valor NUMBER para el nombre de propiedad especificado.

Ejemplo

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;
/

Nota de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para ejecutar este procedimiento.

SET_USER_PROPERTY Procedimiento

Utilice el procedimiento DBMS_CACHE.SET_USER_PROPERTY para definir las propiedades de almacenamiento en caché de AUTO para un esquema especificado, incluidas las que activan el almacenamiento en caché automático para el esquema. Este procedimiento está sobrecargado.

Sintaxis

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
);

Parámetros

Parámetro Descripción

property_name

Especifica el nombre de la propiedad.

A continuación, se muestran los valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE: especifica el ámbito en el que se realiza el refrescamiento para las cachés AUTO.

    A continuación, se muestran los valores válidos para AUTO_REFRESH_MODE:
    • ALL: todas las cachés AUTO existentes en el esquema se refrescan y, si es necesario, se crean nuevas cachés para el usuario especificado. Éste es el valor por defecto.

    • CURRENT: solo se refrescan las cachés existentes, no se agregan nuevas cachés para el usuario especificado.

    • NEW: solo se crean nuevas cachés para el usuario especificado.

property_value_num

Proporciona un valor NUMBER para el nombre de propiedad especificado.

property_value_str

Proporciona un valor STRING para el nombre de propiedad especificado.

owner

Especifica el nombre del esquema. Este parámetro es opcional y se define por defecto en el esquema actual.

Ejemplo

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

Nota de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_CACHE para ejecutar este procedimiento.