Usar Cache de Tabela Externa para Melhorar o Desempenho de Tabelas Externas
O Cache de Tabela Externa no Oracle Autonomous AI Database permite armazenar em cache dados acessados com frequência de tabelas externas no seu banco de dados.
Só há suporte para o Cache de Tabela Externa no Oracle AI Database 26ai.
- Sobre o Cache de Tabela Externa no Autonomous AI Database
Um cache de tabela externa é uma área de armazenamento no Autonomous AI Database que armazena os dados de uma tabela externa. - Pré-requisitos para Criar Cache de Tabela Externa
Lista os pré-requisitos para criar o cache de tabela externa. - Criar e Gerenciar Cache de Tabela Externa no Autonomous AI Database
Usando o cache de tabela externa, você pode armazenar em cache os dados de tabelas externas no seu banco de dados. - Exibir Informações do Cache de Tabela Externa
O Autonomous AI Database fornece views que permitem monitorar o cache de tabela externa. - Observações do Cache de Tabela Externa
Lista observações e restrições importantes sobre o uso do cache de tabela externa em um Autonomous AI Database.
Tópico principal: Recursos
Sobre o Cache de Tabela Externa no Autonomous AI Database
Um cache de tabela externa é uma área de armazenamento no Autonomous AI Database que armazena os dados de uma tabela externa.
Os dados externos não são gerenciados pelo banco de dados; no entanto, você pode usar as tabelas externas para consultar dados fora do banco de dados. As consultas em tabelas externas não serão tão rápidas quanto as consultas em tabelas de banco de dados porque toda vez que você acessar os dados, eles precisarão ser extraídos dos arquivos externos armazenados no Object Store.
O cache de tabela externa permite armazenar localmente dados externos acessados com frequência no Autonomous AI Database, permitindo que consultas subsequentes recuperem dados diretamente do cache. Quando os dados externos são armazenados em seu banco de dados, as consultas em tabelas externas são executadas significativamente mais rápido do que quando os dados são recuperados de tabelas externas. Esse mecanismo de armazenamento em cache é totalmente transparente para os aplicativos, não exigindo alterações em instruções SQL ou fluxos de trabalho existentes.
Você pode criar um cache de tabela externa para tabelas externas particionadas e não particionadas criadas em Tabelas Parquet, ORC, AVRO, CSV e Iceberg. Você pode preencher arquivos novos ou atualizados no cache facilmente, e o banco de dados invalida automaticamente os dados de arquivos excluídos ou inacessíveis, garantindo que as consultas sempre retornem os dados mais atuais. Se os arquivos externos forem removidos ou as credenciais da tabela forem revogadas, os dados em cache correspondentes serão imediatamente invalidados e ficarão inacessíveis, mantendo a integridade e a segurança dos dados.
Os caches de tabelas externas no seu banco de dados podem ser gerenciados automaticamente ou por meio de definições baseadas em políticas. Com o gerenciamento de cache baseado em política, você pode definir políticas simples para preencher, atualizar e retirar arquivos do cache, fornecendo controle preciso sobre o conteúdo e a manutenção do cache.
-
Melhor desempenho para análise: As consultas são várias vezes mais rápidas para seus dados externos acessados com frequência, ideais para painéis, relatórios e ferramentas analíticas que acessam os mesmos dados regularmente.
-
100% Transparente: O mecanismo de armazenamento em cache é totalmente transparente; os aplicativos podem se beneficiar de uma velocidade aprimorada sem exigir alterações em suas consultas, painéis ou aplicativos.
-
Custos de Nuvem Menores: Em uma aplicação multicloud, o armazenamento em cache reduz a necessidade de repetidas recuperações de dados externos do armazenamento remoto, reduzindo assim as taxas de saída de dados associadas ao acesso a dados em regiões ou nuvens.
-
Controle de armazenamento em cache flexível e detalhado: Você pode armazenar em cache todos os arquivos, uma porcentagem de arquivos ou apenas os dados atualizados mais recentemente. Você pode controlar os dados armazenados em cache, o tamanho do cache e os limites de armazenamento para caches de tabelas externas.
Consulte Consultar Dados Externos para obter mais informações.
Pré-requisitos para Criar Cache de Tabela Externa
Lista os pré-requisitos para criar o cache de tabela externa.
-
Você deve estar conectado como usuário
ADMINou ter o privilégioEXECUTEnos pacotesDBMS_EXT_TABLE_CACHEeDBMS_CACHE. -
Você só pode criar um cache de tabela externa em seu próprio esquema e para as tabelas externas que você possui.
-
Você deve ter uma cota de espaço apropriada alocada para o seu esquema para garantir que haja capacidade de armazenamento suficiente para os dados do cache.
-
Você deve ter credenciais para acessar arquivos de tabela externa armazenados no Object Store. Não será necessário criar credenciais se você ativar credenciais do controlador de recursos para acessar o Oracle Cloud Infrastructure Object Store.
Criar e Gerenciar Cache de Tabela Externa no Autonomous AI Database
O cache de tabela externa é criado como um objeto de esquema no seu banco de dados, que recebe espaço físico semelhante ao armazenamento de tabelas e índices em arquivos de dados. Quando você cria um cache de tabela externa, uma nova tabela é criada no seu esquema, e quaisquer limites de cota de espaço definidos para o seu esquema também se aplicam ao cache de tabela externa.
O gerenciamento de caches de tabela externa pode ser Automático ou Baseado em Política. Com o gerenciamento automático de cache, o banco de dados cria, preenche, atualiza e elimina caches com base em padrões de consulta de tabela externa. Com o gerenciamento baseado em políticas, você define como os caches são criados, preenchidos, atualizados e retirados, fornecendo controle preciso sobre o conteúdo e o ciclo de vida do cache.
Tópicos
- Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Descreve como usar o armazenamento em cache baseado em política para tabelas externas no Autonomous AI Database. - Usar Armazenamento Automático em Cache para Tabela Externa
Descreve como usar o armazenamento automático em cache para tabelas externas no Autonomous AI Database.
Usar Cache Baseado em Política para Tabelas Externas
Descreve como usar o armazenamento em cache baseado em política para tabelas externas no Autonomous AI Database.
O armazenamento em cache baseado em política fornece controle explícito sobre como os dados externos são armazenados em cache, atualizados e gerenciados no banco de dados. Nessa abordagem, você define políticas de armazenamento em cache e gerencia todo o ciclo de vida do cache usando procedimentos PL/SQL disponíveis no pacote DBMS_EXT_TABLE_CACHE. Esses procedimentos permitem que você execute explicitamente várias operações de ciclo de vida do cache, como criar e preencher caches, eliminar arquivos do cache e ativar ou desativar os caches.
Essa abordagem oferece controle detalhado sobre o comportamento do cache. Você pode especificar quais arquivos de tabela externa ou qual porcentagem de dados da tabela externa deve ser armazenada em cache, garantindo assim o uso ideal do espaço em cache com base nos requisitos de carga de trabalho. Procedimentos como ADD_BY_LIKE e ADD_LATEST_FILES permitem filtrar e preencher arquivos no cache com base em vários parâmetros, como padrões de nome de arquivo, tempos de modificação ou critérios de atualização de dados. Da mesma forma, você pode usar procedimentos como CLEAR, RETIRE_FILES ou DROP_BY_LIKE para remover arquivos do cache.
Como os caches baseados em política não são gerenciados por um algoritmo de remoção automática, o banco de dados não os elimina automaticamente sob pressão de espaço. Se o espaço no cache ficar indisponível, novos arquivos poderão falhar ao serem preenchidos até que o espaço adicional seja liberado. Essa abordagem oferece maior flexibilidade e é ideal para cargas de trabalho nas quais você precisa de mais controle sobre o conteúdo do cache.
O fluxograma a seguir descreve as etapas para gerenciar caches baseados em política usando o pacote DBMS_EXT_TABLE_CACHE. Ele inclui etapas-chave, como criação de cache, preenchimento e eliminação.
Tópicos
- Criar Cache de Tabela Externa
ExecuteDBMS_EXT_TABLE_CACHE.CREATE_CACHEpara criar um cache de tabela externa. - Preencher Arquivos no Cache de Tabela Externa
Mostra exemplos para preencher arquivos no cache de tabela externa. - Eliminar Arquivos do Cache de Tabela Externa
Mostra exemplos para eliminar arquivos do cache de tabela externa. - Desativar e Ativar Cache de Tabela Externa
Mostra exemplos para desativar e ativar o cache de tabela externa. - Eliminar Cache de Tabela Externa
Mostra um exemplo para eliminar o cache de tabela externa. - Definir Preferências de Dimensionamento Opcionais para Caches Baseados em Política
Descreve como definir preferências de dimensionamento para caches de tabelas externas baseados em política no Autonomous AI Database.
Tópico principal: Criar e Gerenciar Cache de Tabela Externa no Autonomous AI Database
Criar Cache de Tabela Externa
Execute DBMS_EXT_TABLE_CACHE.CREATE_CACHE para criar um cache de tabela externa.
Quando o cache é criado, ele é inicialmente vazio e ativado para preenchimento. O tamanho do cache aumenta a cada vez que um arquivo é adicionado, dependendo dos limites de cota de espaço definidos para o esquema, até atingir os limites atribuídos. Consulte Definir Preferências de Dimensionamento Opcionais para Caches Baseados em Política para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Preencher Arquivos no Cache de Tabela Externa
Mostra exemplos para preencher arquivos no cache de tabela externa.
Depois de criar um cache, você pode preencher arquivos no cache. O preenchimento de arquivos carrega o conteúdo dos arquivos de tabela externa especificados no cache. Você pode optar por preencher todos os arquivos de uma tabela, uma porcentagem específica da tabela ou especificar uma condição de filtro para limitar os arquivos que deseja preencher. Por exemplo, você pode filtrar os arquivos com base em seus nomes ou em um intervalo de datas.
-
Dependendo da cota de espaço alocada para o esquema, o sistema Oracle tenta preencher arquivos no cache. Se o limite de cota atribuído for atingido, o sistema Oracle interromperá o preenchimento de arquivos, a menos que o espaço necessário seja alocado.
-
O cache da tabela externa não é atualizado automaticamente. Para atualizar o cache quando um arquivo no Object Store for modificado, preencha o arquivo novamente.
-
Quando um arquivo é excluído do Armazenamento de Objetos, os dados armazenados em cache correspondentes se tornam inválidos imediatamente e não podem ser recuperados.
Adicionar Tabela ao Cache de Tabela Externa
Use DBMS_EXT_TABLE_CACHE.ADD_TABLE para preencher uma tabela inteira ou uma determinada porcentagem da tabela externa no cache.
Exemplos
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/Este exemplo tenta preencher a tabela STORE_SALES no cache, ignorando todos os arquivos existentes que já foram preenchidos.
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES',
percent_files => 80);
END;
/Este exemplo tenta preencher 80% da tabela STORE_SALES no cache, ignorando todos os arquivos existentes que já foram preenchidos.
O parâmetro percent_files é opcional; se você não especificar esse parâmetro, toda a tabela será preenchida no cache.
Consulte ADD_TABLE Procedures para obter mais informações.
Adicionar Arquivos ao Cache de Tabela Externa
-
ADD_FILE: para adicionar um único arquivo ao cache. -
ADD_BY_LIKE: para adicionar um ou mais arquivos especificados com base nos filtros de caminho especificados. -
ADD_LATEST_FILES: para adicionar um ou mais arquivos com base no intervalo de tempo especificado.
Exemplos
DBMS_EXT_TABLE_CACHE.ADD_FILE para preencher um único arquivo no cache de tabela externa. Por exemplo: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;
/Este exemplo preenche os dados do arquivo salesdata.parquet no cache.
Este exemplo ignora o preenchimento do arquivo no cache se o arquivo especificado existir no cache e não tiver sido modificado desde que o arquivo foi armazenado no cache pela última vez.
Consulte ADD_FILE Procedures para obter mais informações.
DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE para preencher um ou mais arquivos no cache de tabela externa. Por exemplo: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/sales%.parquet",
"https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/customer%.parquet"]'
);
END;
/Este exemplo preenche todos os arquivos com nomes que começam com sales ou customer, excluindo os arquivos que já foram preenchidos.
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/sales#_data1.parquet",
"https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data2.parquet"]',
esc_char => '#',
force => TRUE);
END;
/Este exemplo preenche os arquivos sales_data1.parquet e sales_data2.parquet no cache.
Neste exemplo, o caractere '#' é definido como o caractere de escape. O caractere '_' após '#' é tratado como um sublinhado literal, não como um caractere curinga correspondente a qualquer caractere único.
Consulte ADD_BY_LIKE Procedures para obter mais informações.
DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES para preencher um ou mais arquivos com base na data da última modificação no cache da tabela externa. Por exemplo:BEGIN
DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
owner => 'SALES',
table_name => 'STORE_SALES',
since => INTERVAL '7' DAY,
max_files => 5,
force => TRUE);
END;
/O parâmetro since especifica o intervalo de tempo; somente arquivos modificados nos últimos sete (7) dias são elegíveis para serem preenchidos no cache.
O parâmetro max_files limita o número de arquivos que podem ser preenchidos no cache. Este exemplo preenche apenas 5 (cinco) arquivos.
O parâmetro force força os arquivos especificados a serem substituídos no cache, mesmo que os arquivos não tenham sido modificados.
Consulte ADD_LATEST_FILES Procedures para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Eliminar Arquivos do Cache de Tabela Externa
Mostra exemplos para eliminar arquivos do cache de tabela externa.
Limpar Cache de Tabela Externa
Use DBMS_EXT_TABLE_CACHE.CLEAR para eliminar todos os arquivos do cache de tabela externa. Por exemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.CLEAR (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/Este exemplo elimina todos os arquivos do cache STORE_SALES e desaloca todo o espaço usado pelos arquivos removidos.
Consulte Procedimento CLEAR para obter mais informações.
Eliminar Arquivos do Cache de Tabela Externa
-
DROP_FILE: para eliminar um único arquivo do cache. -
DROP_BY_LIKE: para eliminar um ou mais arquivos do cache com base nos filtros de caminho especificados. -
RETIRE_FILES: para eliminar um ou mais arquivos do cache com base no intervalo especificado.
Exemplos
Use DBMS_EXT_TABLE_CACHE.DROP_FILE para eliminar um arquivo do cache de tabela externa. Por exemplo:
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;
/Este exemplo elimina o arquivo salesdata.parquet do cache e desaloca todo o espaço usado pelo arquivo removido.
Consulte DROP_FILE Procedures para obter mais informações.
Use DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE para eliminar um ou mais arquivos com base no parâmetro path_filters. Por exemplo:
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/salesdata.parquet",
"https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet"]'
);
END;
/Este exemplo elimina os arquivos salesdata.parquet e salesdata1.parquet do cache e desaloca todo o espaço usado pelos arquivos removidos.
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/sales#_data1.parquet",
"https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data2.parquet"]'
);
END;
/Este exemplo elimina os arquivos sales#_data1 e sales#_data2 do cache e desaloca todo o espaço usado pelos arquivos removidos.
Neste exemplo, o caractere '#' é definido como o caractere de escape. O caractere '_' após '#' é tratado como um sublinhado literal, não como um caractere curinga correspondente a qualquer caractere único.
Consulte DROP_BY_LIKE Procedures para obter mais informações.
Use DBMS_EXT_TABLE_CACHE.RETIRE_FILES para eliminar um ou mais arquivos com base no intervalo especificado. Por exemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
owner => 'SALES',
table_name => 'STORE_SALES',
before => INTERVAL '30' DAY);
END;
/Este exemplo elimina arquivos com mais de trinta (30) dias do cache e desaloca todo o espaço usado pelos arquivos removidos.
Consulte RETIRE_FILES Procedures para obter mais informações.
Os exemplos acima removem um ou mais arquivos do cache enquanto mantêm o cache. Você pode carregar arquivos novamente no cache quando necessário. Consulte Preencher Arquivos no Cache de Tabela Externa para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Desativar e Ativar Cache de Tabela Externa
Mostra exemplos para desativar e ativar o cache de tabela externa.
Execute DBMS_EXT_TABLE_CACHE.DISABLE para desativar o cache de tabela externa do banco de dados. A desativação de um cache não exclui dados do cache; em vez disso, o cache é marcado como DISABLED e o otimizador não pode usar o cache para regravações de consulta.
Exemplo
BEGIN
DBMS_EXT_TABLE_CACHE.DISABLE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/Este exemplo desativa o cache STORE_SALES.
Consulte Procedimento DISABLE para obter mais informações.
Depois de desativar um cache de tabela externa, use DBMS_EXT_TABLE_CACHE.ENABLE para ativar o cache.
BEGIN
DBMS_EXT_TABLE_CACHE.ENABLE (
owner => 'SALES',
table_name => 'STORE_SALES'
);
END;
/Este exemplo ativa o cache STORE_SALES.
Consulte CAPACITAR Procedimento para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Eliminar Cache de Tabela Externa
Mostra um exemplo para eliminar o cache da tabela externa.
Execute DBMS_EXT_TABLE_CACHE.DROP_CACHE para eliminar um cache de tabela externa. O procedimento DBMS_EXT_TABLE_CACHE.DROP_CACHE remove o cache de tabela externa especificado do banco de dados e libera o espaço de armazenamento associado ao cache.
Exemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.DROP_CACHE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/Este exemplo elimina o cache STORE_SALES do esquema SALES.
A eliminação de um cache remove seus metadados do dicionário de dados e exclui todos os dados armazenados no cache.
Consulte DROP_CACHE Procedures para obter mais informações.
USER_EXTERNAL_TAB_CACHES para verificar se o cache foi eliminado. Por exemplo:SELECT external_table_name, cached
FROM user_external_tab_caches;Consulte DBA_EXTERNAL_TAB_CACHES e USER_EXTERNAL_TAB_CACHES Views para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Definir Preferências de Dimensionamento Opcionais para Caches Baseados em Política
Descreve como definir preferências de dimensionamento para caches de tabela externa baseados em política no Autonomous AI Database.
Por padrão, o cache de tabela externa é desativado para um usuário. Para ativar e criar o cache de tabela externa, use o procedimento DBMS_EXT_TABLE_CACHE.CREATE_CACHE. O cache é criado no seu esquema padrão e herda quaisquer limites de cota de espaço definidos para o seu esquema. No entanto, você também pode usar o procedimento DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY para definir cotas de espaço para o cache de tabela externa. Use os parâmetros PROPERTY_NAME e PROPERTY_VALUE do procedimento DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY para definir os limites de cota de espaço.
O parâmetro PROPERTY_NAME aceita valores MAX_CACHE_SIZE e MAX_CACHE_PERCENT. A propriedade MAX_CACHE_SIZE especifica o tamanho total do cache externo em bytes. A propriedade MAX_CACHE_PERCENT especifica o tamanho total do cache externo como uma porcentagem da cota do usuário especificado.
Exemplos
BEGIN
DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
property_name => 'MAX_CACHE_PERCENT',
property_value => 50,
owner => 'SALES');
END;
/
Este exemplo define a preferência de armazenamento em cache como MAX_CACHE_PERCENT para o esquema SALES.
O property_value é 50%, o que especifica que a cota de espaço no cache para o esquema SALES é no máximo 50% da cota de espaço total definida para SALES.
BEGIN
DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
owner => 'SALES',
property_name => 'MAX_CACHE_SIZE',
property_value => 5368709120);
END;
/Este exemplo define a preferência de armazenamento em cache como MAX_CACHE_SIZE para o esquema SALES.
O property_value é 5368709120, que especifica que o tamanho máximo do cache para o esquema SALES é de até 5 GB.
Consulte SET_USER_PROPERTY Procedure e CREATE_CACHE Procedure para obter mais informações.
Use DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY para recuperar as propriedades de tamanho do cache.
Exemplo:
SET SERVEROUTPUT ON
DECLARE
max_cache_sz NUMBER,
BEGIN
max_cache_sz := DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
property_name => 'MAX_CACHE_SIZE',
owner => 'SALES');
END;
/Consulte Função GET_USER_PROPERTY para obter mais informações.
Observe a seguinte ordem de precedência para definir as propriedades de tamanho do cache:
-
Quando
MAX_CACHE_SIZE,MAX_CACHE_PERCENTe a cota de espaço são definidos,MAX_CACHE_PERCENTtem precedência sobreMAX_CACHE_SIZE. -
Quando apenas
MAX_CACHE_SIZEé definido eMAX_CACHE_PERCENTou cota de espaço não é definida,MAX_CACHE_SIZEtem precedência. -
Quando apenas a cota de espaço é definida e
MAX_CACHE_SIZEeMAX_CACHE_PERCENTnão são definidos, a cota de tamanho do cache assume como padrão 10% da cota total do esquema. -
Quando
MAX_CACHE_SIZE,MAX_CACHE_PERCENTou a cota de espaço não estiver definida, a cota de espaço no cache assumirá como padrãoUNLIMITED.
Para monitorar o uso do espaço no cache, consulte a coluna
CACHE_CUR_SIZE nas views ALL_EXTERNAL_TAB_CACHES. Consulte DBA_EXTERNAL_TAB_CACHES e USER_EXTERNAL_TAB_CACHES Views para obter mais informações.
Tópico principal: Usar Armazenamento em Cache Baseado em Política para Tabelas Externas
Usar Armazenamento Automático em Cache para Tabela Externa
Descreve como usar o armazenamento automático em cache para tabelas externas no Autonomous AI Database.
Quando você ativa o armazenamento automático em cache para seu banco de dados, o banco de dados gerencia automaticamente todo o ciclo de vida do cache, incluindo criação, preenchimento, atualização e eliminação, sem exigir sua intervenção. O sistema Oracle usa SQL Tuning Sets (STS) para determinar quais tabelas externas podem se beneficiar do armazenamento em cache, quando atualizar os caches e quando eliminá-los com base nos padrões de uso e no espaço de armazenamento disponível. Essa abordagem reduz sua sobrecarga para gerenciamento de cache, pois o uso do cache é monitorado continuamente, garantindo que os dados da tabela externa acessados com frequência permaneçam disponíveis no cache para melhorar os tempos de resposta da consulta.
Por padrão, o armazenamento automático em cache não está ativado no banco de dados. Para ativá-lo, defina o tamanho do cache para um valor diferente de zero usando procedimentos como DBMS_CACHE.SET_USER_PROPERTY fornecidos no pacote DBMS_CACHE. Você pode configurar o armazenamento automático em cache para um usuário específico ou como a configuração padrão para todos os usuários do banco de dados, dependendo dos seus requisitos.
Quando o armazenamento automático em cache de tabelas externas é ativado, o sistema Oracle cria caches de tabelas externas que são marcados como AUTO e preenche todos os dados correspondentes de uma tabela externa em seu cache, se a cota permitir. Os caches AUTO são atualizados automaticamente em uma programação regular. No entanto, você também pode usar os procedimentos DBMS_CACHE.REFRESH ou DBMS_CACHE.CLEAR para atualizar ou eliminar seus caches, respectivamente.
O sistema Oracle gerencia os caches AUTO usando um algoritmo de remoção semelhante ao LRU (Least Recentemente Used). Quando sob pressão de espaço, os caches que foram acessados menos recentemente são automaticamente eliminados durante o ciclo de atualização para liberar o espaço de armazenamento.
Tópicos
- Ativar Armazenamento Automático em Cache para Tabelas Externas
Mostra exemplos de como ativar o armazenamento automático em cache para tabelas externas no seu banco de dados. - Atualizando Caches de Tabelas Externas
Mostra um exemplo para atualizar caches AUTO para um esquema especificado. - Eliminar Caches de Tabela Externa
Mostra um exemplo para eliminar caches AUTO para um esquema especificado.
Tópico principal: Criar e Gerenciar Cache de Tabela Externa no Autonomous AI Database
Ativar Armazenamento Automático em Cache para Tabelas Externas
Mostra exemplos de como ativar o armazenamento automático em cache para tabelas externas no banco de dados.
Por padrão, o armazenamento automático em cache está desativado. Você pode ativar o armazenamento automático em cache para suas tabelas externas globalmente para todos os usuários do banco de dados ou para um usuário específico. Depois que o armazenamento automático em cache é ativado, o banco de dados cria automaticamente caches de tabela externa com base nas estatísticas de uso de consulta de tabela externa disponíveis nos Conjuntos de Ajuste SQL (STS). Todos os caches recém-criados são marcados como AUTO. Os caches existentes continuam a seguir as definições de gerenciamento de cache baseadas em política.
Ao ativar o armazenamento automático em cache, você pode especificar opcionalmente o escopo da atualização de cache, o que significa quais caches são elegíveis para atualização durante cada ciclo de atualização, e definir o intervalo de tempo permitido para concluir o processo de atualização.
Use DBMS_CACHE.SET_GLOBAL_PROPERTY ou DBMS_CACHE.SET_USER_PROPERTY para definir propriedades de armazenamento em cache AUTO, incluindo propriedades para ativar o armazenamento em cache automático globalmente ou para um usuário especificado, respectivamente. As preferências de armazenamento em cache no nível do usuário têm precedência sobre as preferências globais de armazenamento em cache. Use os parâmetros PROPERTY_NAME e PROPERTY_VALUE desses procedimentos para definir limites de cota de espaço para caches de tabelas externas.
Dependendo da cota de espaço especificada, o sistema Oracle cria os caches e tenta preencher todos os dados da tabela externa no cache. O processo de preenchimento falhará se o tamanho do cache não for suficiente para acomodar todos os dados da tabela externa.
Para monitorar o uso do espaço no cache, consulte a coluna
CACHE_CUR_SIZE nas views ALL_EXTERNAL_TAB_CACHES. Consulte DBA_EXTERNAL_TAB_CACHES e USER_EXTERNAL_TAB_CACHES Views para obter mais informações.
Tópico principal: Usar Armazenamento Automático em Cache para Tabela Externa
Atualizando Caches de Tabela Externa
Mostra um exemplo para atualizar caches AUTO para um esquema especificado.
-
Adicionar novos caches.
-
Elimine caches inválidos (os caches que se tornam inacessíveis são marcados como inválidos e são eliminados no ciclo de atualização subsequente.)
-
Atualize ou preencha novamente os caches existentes.
-
Elimine os caches acessados recentemente quando sob pressão de espaço.
Como alternativa, você também pode usar o procedimento DBMS_CACHE.REFRESH para executar uma atualização sob demanda para todos os caches de um usuário especificado.
Tópico principal: Usar Armazenamento Automático em Cache para Tabela Externa
Eliminar Caches de Tabela Externa
Mostra um exemplo para eliminar caches AUTO para um esquema especificado.
Durante cada ciclo de atualização, os caches inválidos e os caches acessados mais recentemente são eliminados do banco de dados. Como alternativa, você pode usar o procedimento DBMS_CACHE.CLEAR para eliminar todos os caches de um usuário especificado.
Tópico principal: Usar Armazenamento Automático em Cache para Tabela Externa
Exibir Informações do Cache da Tabela Externa
O Autonomous AI Database fornece views que permitem monitorar o cache de tabela externa.
| Exibir | Descrição |
|---|---|
|
Fornece informações sobre todos os caches de tabelas externas no banco de dados ou sobre os caches de tabelas externas de um usuário. |
|
|
Fornece informações sobre os arquivos no Cloud Storage que são acessíveis ao usuário atual e pertencem a tabelas externas em cache. |
|
|
Fornece informações sobre os arquivos no armazenamento em nuvem que pertencem ao usuário atual e pertencem a tabelas externas em cache. Esta exibição não exibe a coluna |
Observações do Cache da Tabela Externa
Lista observações e restrições importantes sobre o uso do cache de tabela externa em um Autonomous AI Database.
-
Você só pode criar um cache de tabela externa em seu próprio esquema e para as tabelas externas que você possui.
-
Um cache de tabela externa só pode conter arquivos de uma única tabela externa.
-
Você não pode conceder privilégios em um cache de tabela externa e só pode acessar dados do cache de tabela externa que você possui.
-
Quando um arquivo é excluído do Armazenamento de Objetos, os dados correspondentes no cache são sinalizados como inválidos e não podem ser acessados.
