Otimize o Desempenho de Links para a Nuvem com Views Materializadas
As views materializadas melhoram o desempenho dos links de nuvem, armazenando dados remotos em cache localmente no banco de dados do consumidor e atualizando-os de forma incremental, em vez de reler tudo na rede a cada vez.
As views materializadas são frequentemente usadas para melhorar o desempenho, especialmente ao armazenar dados em um banco de dados local que é originado de tabelas remotas ou views por meio de um link de banco de dados. Da mesma forma, as views materializadas são frequentemente usadas em vez de views quando há cálculos ou resumos extensos, especialmente em grandes conjuntos de dados. As views materializadas são atualizadas em intervalos especificados, o que significa que os dados nem sempre estão atualizados. No entanto, as consultas com essas views materializadas são significativamente mais rápidas nesses casos de uso.
- Atualizando Views Materializadas
O banco de dados mantém dados em views materializadas, atualizando-os após alterações nas tabelas base. A atualização de uma view materializada atualiza automaticamente todos os índices. No caso de atualização completa, isso requer espaço de classificação temporário para recriar todos os índices durante a atualização. - Atualização Incremental de Views Materializadas em Links para a Nuvem
A atualização incremental é comumente chamada de atualização RÁPIDA porque geralmente tem um desempenho mais rápido do que a atualização completa. - Registre um Link de Nuvem com a Atualização Rápida da View Materializada
Registre um link de nuvem para indicar que há suporte para a atualização rápida da view materializada. Use o procedimentoREGISTERno pacoteDBMS_CLOUD_LINKcom o argumentoMV_FAST_REFRESHpara registrar o link da nuvem. - Atualizar um Link de Nuvem com a Atualização Rápida da View Materializada
Você pode atualizar um link de nuvem para indicar que há suporte para a atualização rápida da view materializada no link de nuvem. - Exemplo: Caso de Uso de Atualização Incremental de Views Materializadas
Esse caso de uso demonstra como compartilhar dados entre duas instâncias do Oracle Autonomous AI Database usando o Cloud Link e views materializadas de atualização rápida.
Atualizando Views Materializadas
O banco de dados mantém dados em views materializadas, atualizando-os após alterações nas tabelas base. A atualização de uma view materializada atualiza automaticamente todos os índices. No caso de atualização completa, isso requer espaço de classificação temporário para recriar todos os índices durante a atualização.
Tipos de Atualização para Views Materializadas:
Veja a seguir um método de atualização incremental para views materializadas que usam links de nuvem:
-
atualização baseada em log
Para diferentes métodos de atualização, consulte o capítulo Atualizando Views Materializadas.
A atualização do PCT (Partition Change Tracking) e a atualização do LPCT (Lógica Partition Change Tracking) não são suportadas para views materializadas que usam links de nuvem.
Tópico principal: Otimizar o Desempenho de Links da Nuvem com Views Materializadas
Atualização Incremental de Views Materializadas em Links da Nuvem
A atualização incremental é comumente chamada de atualização FAST porque geralmente tem um desempenho mais rápido do que a atualização completa.
Uma atualização incremental elimina a necessidade de recriar views materializadas do zero. Dessa forma, o processamento apenas das alterações pode resultar em um tempo de atualização muito rápido. Para views materializadas que usam o método de atualização rápida baseado em log, um log de view materializada manterá um registro de alterações nas tabelas base. Um log de view materializada é um objeto de esquema que registra alterações em uma tabela-base para que uma view materializada definida na tabela-base possa ser atualizada de forma incremental. Cada log de view materializada é associado a uma única tabela base. O log da view materializada reside no mesmo banco de dados e esquema da tabela base. Você pode permitir que o Oracle Autonomous AI Database defina e atualize views materializadas em tabelas remotas acessadas por meio de links de nuvem.
O Autonomous AI Database Serverless executa a atualização incremental de views materializadas usando a atualização FAST. Este método aplica somente as alterações feitas desde a última atualização, em vez de executar uma atualização completa de toda a view materializada.
- Painéis e relatórios podem ser atualizados rapidamente sem recargas completas de dados, permitindo análises quase em tempo real.
- Acordos de Nível de Serviço (SLAs) aprimorados para cargas de trabalho de análise por meio de atualização aprimorada de dados.
Para obter vários tipos de views materializadas que suportam atualização incremental com links de nuvem, consulte Tipos de Views Materializadas.
Tópico principal: Otimizar o Desempenho de Links da Nuvem com Views Materializadas
Registrar um Link de Nuvem com Atualização Rápida de View Materializada
Registre um link de nuvem para indicar que há suporte para a atualização rápida da view materializada. Use o procedimento REGISTER no pacote DBMS_CLOUD_LINK com o argumento MV_FAST_REFRESH para registrar o link da nuvem.
SALES_VIEW_AGG no esquema CLOUDLINK. Em seguida, ele pode ser registrado como um link de nuvem com o recurso de atualização rápida ativado, informando o valor TRUE para o argumento MV_FAST_REFRESH no procedimento REGISTER.BEGIN
DBMS_CLOUD_LINK.REGISTER(
schema_name => 'CLOUDLINK',
schema_object => 'SALES_VIEW_AGG',
namespace => 'REGIONAL_SALES',
name => 'SALES_AGG',
description => 'Aggregated regional sales information.',
scope => 'MY$TENANCY',
auth_required => FALSE,
data_set_owner => 'tomholl@example.com',
mv_fast_refresh => TRUE );
END;
/Como provedor, você deve criar a tabela de log de view materializada na tabela base no banco de dados do provedor que corresponde à view materializada no banco de dados do consumidor.
Para obter mais informações, consulte Procedimento REGISTER.
Tópico principal: Otimizar o Desempenho de Links da Nuvem com Views Materializadas
Atualizar um Link de Nuvem com View Materializada - Atualização Rápida
Você pode atualizar um link de nuvem para indicar que há suporte para a atualização rápida da view materializada no link de nuvem.
BEGIN
DBMS_CLOUD_LINK.REGISTER(
schema_name => 'CLOUDLINK',
schema_object => 'SALES_ALL',
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
description => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
scope => 'MY$COMPARTMENT',
auth_required => FALSE,
data_set_owner => 'tomholl@example.com' );
END;
/Suponha que uma tabela de log de view materializada seja criada posteriormente na tabela SALES_ALL no esquema CLOUDLINK. O link da nuvem pode ser atualizado para ativar o recurso de atualização rápida, informando o valor TRUE para o argumento MV_FAST_REFRESH no procedimento UPDATE_REGISTRATION.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/O procedimento UPDATE_REGISTRATION permite a atualização rápida da view materializada nos links da nuvem, garantindo que a tabela de log da view materializada esteja acessível no link da nuvem. Para torná-lo acessível, você deve especificar um valor TRUE para o argumento MV_FAST_REFRESH.
Para obter mais informações, consulte UPDATE_REGISTRATION Procedure.
Desde que o provedor criou os logs de view materializada necessários. Você deve atualizar os metadados do link para garantir que ele reflita as novas tabelas de log.
Tópico principal: Otimizar o Desempenho de Links da Nuvem com Views Materializadas
Exemplo: Caso de Uso da Renovação Incremental de Views Materializadas
Este caso de uso demonstra como compartilhar dados entre duas instâncias do Oracle Autonomous AI Database usando o Cloud Link e views materializadas de atualização rápida.
Considere uma organização em que o Produtor AI Autonomous Database (PRODUCER_DB) da equipe de vendas armazena transações de vendas ao vivo em uma tabela chamada SALES_ALL dentro do esquema CLOUDLINK. A equipe de análise do Consumer AI Autonomous Database (CONSUMER_DB) no mesmo compartimento da OCI acessa esses dados de vendas por meio de um Cloud Link registrado e cria uma view materializada de atualização rápida TRUSTED_SALES_MV no Cloud Link e consulta dados em tempo real para relatórios. Depois de inserir uma nova venda de lâmpada de mesa no produtor, uma atualização rápida sincroniza apenas a mudança para o consumidor para relatórios instantâneos.
- O Produtor cria uma tabela e carrega os dados de vendas iniciais.
- O Produtor registra um Link de Nuvem para expor a tabela.
- O Produtor cria um log de view materializada para rastrear as alterações.
- O Produtor atualiza o registro do Cloud Link para ativar a atualização rápida.
- O Consumidor cria uma view materializada no Cloud Link.
- O Consumidor consulta a view materializada para verificar os dados iniciais.
- O Produtor insere novas transações de vendas.
- O Consumidor executa uma atualização rápida na view materializada.
- O Consumidor consulta a view materializada novamente para ver os dados atualizados.
Pré-requisitos
Antes de implementar a atualização incremental para views materializadas em links de nuvem, certifique-se de que os pré-requisitos a seguir sejam atendidos.
- Os links da nuvem são configurados e testados corretamente.
- Privilégios apropriados são concedidos aos usuários que criarão e atualizarão views materializadas.
- O banco de dados do provedor tem log de view materializada configurado para as tabelas base.
As seções a seguir descrevem o workflow detalhado para compartilhar dados entre duas instâncias do Oracle Autonomous AI Database usando o Cloud Link e views materializadas de atualização rápida em um exemplo de caso de uso prático. Esse fluxo de trabalho e os exemplos de código associados podem ser modificados e implementados de acordo com seus requisitos.
Etapa 1: Criar Tabela e Carregar Dados de Vendas Iniciais
A equipe de Vendas cria a tabela SALES_ALL que armazena todas as transações de check-out provenientes da organização, capturando o ID da venda, o nome do produto, a quantidade, o preço unitário e a data da venda. Ele carrega dez transações iniciais que variam de Wireless Mouse a Bluetooth Speaker.
CREATE TABLE SALES_ALL (
sale_id NUMBER PRIMARY KEY,
product_name VARCHAR2(100),
quantity NUMBER,
unit_price NUMBER(10, 2),
sale_date DATE DEFAULT SYSDATE
);
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (1, 'Wireless Mouse', 2, 25.50, TO_DATE('2026-01-29', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (2, 'Mechanical Keyboard', 1, 89.99, TO_DATE('2026-01-20', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (3, 'USB-C Hub', 3, 45.00, TO_DATE('2026-01-21', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (4, '27-inch Monitor', 2, 299.99, TO_DATE('2026-01-22', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (5, 'Ergonomic Chair', 1, 350.00, TO_DATE('2026-01-23', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (6, 'HD Webcam', 5, 65.25, TO_DATE('2026-01-24', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (7, 'Laptop Stand', 2, 39.95, TO_DATE('2026-01-25', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (8, 'Noise Cancelling Headphones', 1, 199.00, TO_DATE('2026-01-26', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (9, 'External SSD 1TB', 4, 120.00, TO_DATE('2026-01-27', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (10, 'Bluetooth Speaker', 3, 55.00, TO_DATE('2026-01-28', 'YYYY-MM-DD'));
COMMIT;Etapa 2: Registrar o Link da Nuvem
Para compartilhar dados de vendas com a equipe de análise, o DBA líder registra um Link da Nuvem na tabela SALES_ALL. Esse Link de Nuvem chamado SALES no namespace TRUSTED_COMPARTMENT é uma janela somente leitura para os dados do Produtor. Como os Autonomous AI Databases do Produtor e do Consumidor estão no mesmo compartimento do OCI, o DBA define o escopo como MY$COMPARTMENT.
DBMS_CLOUD_LINK.REGISTER:BEGIN
DBMS_CLOUD_LINK.REGISTER(
schema_name => 'CLOUDLINK',
schema_object => 'SALES_ALL',
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
description => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
scope => 'MY$COMPARTMENT',
auth_required => FALSE,
data_set_owner => 'tomholl@example.com' );
END;
/Etapa 3: Criar Log da View Materializada
Para ativar atualizações de atualização incremental, o DBA cria um log de view materializada em SALES_ALL. Esse log captura todas as informações de inserção, atualização e exclusão, registrando a chave primária, o ROWID e a sequência necessárias para a atualização rápida.
SALES_ALL:CREATE MATERIALIZED VIEW LOG ON SALES_ALL WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;Com o log de view materializada em vez de digitalizar toda a tabela Produtor, o Consumidor pode solicitar apenas as alterações desde a última atualização.
Etapa 4: Atualizar Link do Cloud para Atualização Rápida
Com o log de view materializada, o DBA atualiza o registro do Cloud Link para ativar a atualização rápida de qualquer view materializada criada nesse link.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/A ativação da atualização rápida no nível do Cloud Link permite que todos os consumidores se beneficiem de atualizações de atualização incrementais.
Etapa 5: Criar View Materializada
Na instância do Consumer Autonomous AI Database, a equipe de análise cria uma view materializada chamada TRUSTED_SALES_MV que seleciona todas as colunas no Cloud Link. A view materializada é configurada com REFRESH FAST ON DEMAND, que usa o log de view materializada do Produtor para aplicar somente alterações incrementais durante cada atualização.
CREATE MATERIALIZED VIEW TRUSTED_SALES_MV REFRESH FAST ON DEMAND AS SELECT * from TRUSTED_COMPARTMENT.SALES@CLOUD$LINK;Os analistas podem executar agregações, junções e filtros complexos no TRUSTED_SALES_MV sem afetar o Produtor. Como está configurado para atualização rápida, o Consumidor pode permanecer em sincronia com o Produtor.
Etapa 6: Consultar a View Materializada
Os analistas consultam TRUSTED_SALES_MV para verificar se eles podem ver as dez transações de vendas iniciais. A consulta retorna nomes de produtos, quantidades e preços unitários para itens como Mouse Sem Fio, Cadeira Ergonômica e SSD Externo 1 TB correspondentes aos dados carregados na tabela SALES_ALL do Produtor.
SELECT PRODUCT_NAME, QUANTITY, UNIT_PRICE FROM TRUSTED_SALES_MV;PRODUCT_NAME QUANTITY UNIT_PRICE
Wireless Mouse 2 25.50
Mechanical Keyboard 1 89.99
USB-C Hub 3 45.00
27-inch Monitor 2 299.99
Ergonomic Chair 1 350.00
HD Webcam 5 65.25
Laptop Stand 2 39.95
Noise Cancelling Headphones 1 199.00
External SSD 1TB 4 120.00
Bluetooth Speaker 3 55.00A saída exibe os dados de vendas visíveis na view materializada do Consumidor. Os consumidores agora podem acessar dados de vendas sem tocar no banco de dados do Produtor.
Etapa 7: Inserir Novos Dados de Vendas
No final do dia, a organização lança uma venda em Lâmpadas de Mesa para limpar o estoque em excesso. Novas transações são processadas e inseridas no SALES_ALL no Produtor. O log de view materializada captura automaticamente esta nova linha, rastreando a alteração para a próxima atualização do Consumidor.
SALES_ALL:INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (11, 'Desk Lamp', 10, 24.99, TO_DATE('2026-01-29', 'YYYY-MM-DD'));
COMMIT;O produtor continua a lidar com transações ao vivo independentemente do consumidor. O log de view materializada registra a alteração, permitindo que o Consumidor obtenha as informações durante a próxima atualização.
Etapa 8: Renovar Rapidamente a View Materializada
O Autonomous AI Database do Consumidor aciona uma atualização rápida do TRUSTED_SALES_MV usando o procedimento DBMS_MVIEW.REFRESH com a opção 'F' (rápida). Durante o processo de atualização, o TRUSTED_SALES_MV é atualizado localmente com apenas a nova linha de Lâmpada de Mesa do log de visualização materializada do Produtor.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/Em vez de reler todas as dez (ou milhares) linhas, a atualização do Consumer Autonomous AI Database recupera apenas a nova linha que foi adicionada desde a última atualização.
Etapa 9: Consultar View Materializada Atualizada
Os analistas executam a mesma consulta novamente e agora veem onze linhas, incluindo a lâmpada de mesa recém-adicionada com uma quantidade de 10 e preço unitário de 24,99. Os dados de venda estão imediatamente disponíveis para geração de relatórios.
SELECT PRODUCT_NAME, QUANTITY, UNIT_PRICE FROM TRUSTED_SALES_MV;PRODUCT_NAME QUANTITY UNIT_PRICE
Wireless Mouse 2 25.50
Mechanical Keyboard 1 89.99
USB-C Hub 3 45.00
27-inch Monitor 2 299.99
Ergonomic Chair 1 350.00
HD Webcam 5 65.25
Laptop Stand 2 39.95
Noise Cancelling Headphones 1 199.00
External SSD 1TB 4 120.00
Bluetooth Speaker 3 55.00
Desk Lamp 10 24.99
A saída exibe os dados de vendas atualizados após a atualização rápida, incluindo a nova venda da lâmpada de mesa.
A organização implementou com sucesso um compartilhamento de dados usando o Oracle Autonomous AI Database Cloud Link e views materializadas de atualização rápida.
Tópico principal: Otimizar o Desempenho de Links da Nuvem com Views Materializadas