Pacote DBMS_CACHE

O pacote DBMS_CACHE facilita o armazenamento automático em cache para caches de tabelas externas em uma instância do Autonomous AI Database.

Resumo dos Subprogramas DBMS_CACHE

Esta tabela resume os subprogramas incluídos no pacote DBMS_CACHE.

Subprograma Descrição

Procedimento CLEAR

Limpa todos os caches de tabelas externas de um usuário especificado.

GET_GLOBAL_PROPERTY Procedimento

Recupera propriedades de armazenamento em cache da tabela externa.

GET_USER_PROPERTY Procedimento

Recupera propriedades de armazenamento em cache da tabela externa para um usuário especificado.

REFRESH Procedimento

Atualiza todos os caches de tabelas externas para um usuário especificado.

SET_GLOBAL_PROPERTY Procedimento

Especifica a preferência de armazenamento em cache da tabela externa para todos os usuários do banco de dados.

SET_USER_PROPERTY Procedimento

Especifica a preferência de armazenamento em cache da tabela externa para um usuário especificado.

Procedimento CLEAR

Use o procedimento DBMS_CACHE.CLEAR para eliminar todos os caches de tabela externa de um usuário especificado.

O procedimento DBMS_CACHE.CLEAR elimina todos os caches de tabelas externas e libera o espaço de armazenamento, semelhante ao modo como o comando DROP funciona em uma tabela de banco de dados.

Sintaxe

DBMS_CACHE.CLEAR (
    owner    IN   VARCHAR2
);

Parâmetros

Parâmetro Descrição

owner

Especifica o nome do esquema.

Exemplo

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

Observação do Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para limpar um cache.

GET_GLOBAL_PROPERTY Procedimento

O procedimento DBMS_CACHE.GET_GLOBAL_PROPERTY recupera as preferências de cache da tabela externa para todos os usuários no banco de dados. Este procedimento é sobrecarregado.

Sintaxe

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 Descrição

property_name

Especifica o nome da propriedade.

Estes são os valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • MAX_REFRESH_WINDOW

  • AUTO_REFRESH_MODE

property_value_num

Recupera um valor NUMBER para o nome de propriedade especificado.

property_value_str

Recupera um valor STRING para o nome de propriedade especificado.

Exemplo

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

Observação do Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para executar este procedimento.

SET_GLOBAL_PROPERTY Procedimento

Use o procedimento DBMS_CACHE.SET_GLOBAL_PROPERTY para definir propriedades de armazenamento em cache AUTO para todos os usuários do banco de dados, incluindo aqueles que ativam o armazenamento em cache automático para o banco de dados. Este procedimento é sobrecarregado.

Por padrão, o armazenamento automático em cache de tabelas externas é desativado. Para ativá-lo, defina o tamanho do cache para um valor diferente de zero usando a propriedade MAX_CACHE_SIZE ou MAX_CACHE_SIZE do procedimento DBMS_CACHE.SET_GLOBAL_PROPERTY. Isso permite o armazenamento automático em cache globalmente para o banco de dados.

Sintaxe


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 Descrição

property_name

Especifica o nome da propriedade.

Estes são os valores válidos para property_name:
  • MAX_CACHE_PERCENT: A propriedade MAX_CACHE_PERCENT especifica o percentual máximo da cota de armazenamento designada de um usuário que pode ser usada para caches de tabelas externas.

  • MAX_CACHE_SIZE: A propriedade MAX_CACHE_SIZE especifica o volume máximo de armazenamento, em bytes, que um usuário pode usar para caches de tabelas externas.

  • MAX_REFRESH_WINDOW: O MAX_REFRESH_WINDOW na propriedade especifica o intervalo de tempo máximo, em segundos, permitido para atualizar caches de tabelas externas.

  • AUTO_REFRESH_MODE: Especifica o escopo no qual a atualização é executada para caches AUTO.

    Estes são os valores válidos para AUTO_REFRESH_MODE:
    • ALL: Todos os caches AUTO existentes no banco de dados são atualizados e, se necessário, novos caches são criados. Esse é o valor padrão.

    • CURRENT: somente os caches existentes são atualizados, nenhum novo caches é adicionado.

    • NEW: somente novos caches são criados.

property_value_num

Fornece um valor NUMBER para o nome de propriedade especificado.

property_value_str

Fornece um valor STRING para o nome de propriedade especificado.

Exemplos

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

Observações de Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para executar este procedimento.

  • A propriedade MAX_REFRESH_WINDOW especifica, em segundo lugar, o tempo máximo permitido para atualizar caches de tabelas externas. Se a atualização exceder o limite especificado, a atualização de cache será encerrada normalmente e quaisquer caches elegíveis restantes serão enfileirados para o próximo ciclo de atualização.

  • Quando você atualiza caches usando o procedimento DBMS_CACHE.REFRESH, o parâmetro de procedimento tem precedência sobre a propriedade AUTO_REFRESH_MODE.

    Consulte Procedimento REFRESH para obter mais informações.

REFRESH Procedimento

Use o procedimento DBMS_CACHE.REFRESH para atualizar todos os caches de tabela externa AUTO para um usuário especificado.

Sintaxe

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

Parâmetros

Parâmetro Descrição

owner

Especifica o nome do esquema.

refresh_type

Especifica a opção de atualização.

Estes são os valores válidos de refresh_type:
  • ALL: Todos os caches AUTO existentes para o esquema especificado são atualizados e, se necessário, novos caches são criados para o usuário especificado. Esse é o valor padrão.

  • CURRENT: somente os caches existentes são atualizados, nenhum novo caches é adicionado para o usuário especificado.

  • NEW: somente novos caches são criados para o usuário especificado.

Esse parâmetro é opcional e tem como padrão ALL.

Exemplo

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

Observações de Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para executar este procedimento.

  • Se você não especificar um valor para o parâmetro refresh_type, a Oracle executará a atualização com base no valor auto_refresh_mode. O valor padrão para auto_refresh_mode é ALL.

  • Quando a propriedade MAX_REFRESH_WINDOW é definida, o sistema Oracle tenta executar a atualização na janela especificada. Se a atualização exceder o limite especificado, a atualização de cache será encerrada normalmente e quaisquer caches elegíveis restantes serão enfileirados para o próximo ciclo de atualização.

  • Todos os caches AUTO no banco de dados são gerenciados usando um algoritmo de remoção semelhante ao LRU (Menos Usado Recentemente). Quando sob pressão de espaço, os caches que foram acessados menos recentemente são automaticamente eliminados durante o processo de atualização para liberar o espaço de armazenamento.

GET_USER_PROPERTY Procedimento

Use o procedimento DBMS_CACHE.GET_USER_PROPERTY para recuperar propriedades de armazenamento automático em cache para um usuário.

Sintaxe

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 Descrição

property_name

Especifica o nome da propriedade.

Estes são os valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE

owner

Especifica o nome do esquema. Esse parâmetro é opcional e assume como padrão o esquema atual.

property_value_str

Recupera um valor STRING para o nome de propriedade especificado.

property_value_num

Recupera um valor NUMBER para o nome de propriedade especificado.

Exemplo

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

Observação do Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para executar este procedimento.

SET_USER_PROPERTY Procedimento

Use o procedimento DBMS_CACHE.SET_USER_PROPERTY para definir propriedades de armazenamento em cache AUTO para um esquema especificado, incluindo aquelas que ativam o armazenamento automático em cache para o esquema. Este procedimento é sobrecarregado.

Sintaxe

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 Descrição

property_name

Especifica o nome da propriedade.

Estes são os valores válidos para property_name:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE: Especifica o escopo no qual a atualização é executada para caches AUTO.

    Estes são os valores válidos para AUTO_REFRESH_MODE:
    • ALL: Todos os caches AUTO existentes no esquema são atualizados e, se necessário, novos caches são criados para o usuário especificado. Esse é o valor padrão.

    • CURRENT: somente os caches existentes são atualizados, nenhum novo caches é adicionado para o usuário especificado.

    • NEW: somente novos caches são criados para o usuário especificado.

property_value_num

Fornece um valor NUMBER para o nome de propriedade especificado.

property_value_str

Fornece um valor STRING para o nome de propriedade especificado.

owner

Especifica o nome do esquema. Esse parâmetro é opcional e assume como padrão o esquema atual.

Exemplo

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

Observação do Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_CACHE para executar este procedimento.