Optimización del Rendimiento de Enlaces en la Nube con Vistas Materializadas
Las vistas materializadas mejoran el rendimiento de los enlaces en la nube al almacenar en caché los datos remotos localmente en la base de datos de consumidor y refrescarlos de forma incremental en lugar de volver a leer todo en la red cada vez.
Las vistas materializadas se suelen utilizar para mejorar el rendimiento, especialmente cuando se almacenan datos en una base de datos local que se obtiene de tablas o vistas remotas a través de un enlace de base de datos. Del mismo modo, las vistas materializadas se suelen utilizar en lugar de vistas cuando hay cálculos o resúmenes extensos, especialmente en juegos de datos de gran tamaño. Las vistas materializadas se refrescan en intervalos especificados, lo que significa que los datos no siempre están actualizados. Sin embargo, las consultas en estas vistas materializadas son significativamente más rápidas en estos casos de uso.
- Refrescamiento de Vistas Materializadas
La base de datos mantiene los datos en las vistas materializadas refrescándolos después de los cambios realizados en las tablas base. El refrescamiento de una vista materializada actualiza automáticamente todos sus índices. En el caso del refrescamiento completo, se necesita un espacio de ordenación temporal para volver a crear todos los índices durante el refrescamiento. - Refrescamiento Incremental de Vistas Materializadas sobre Enlaces de Nube
El refrescamiento incremental se suele llamar refrescamiento FAST porque normalmente se realiza más rápido que el refrescamiento completo. - Registro de un Enlace de Nube con Refrescamiento Rápido de Vista Materializada
Debe registrar un enlace de nube para indicar que el refrescamiento rápido de vista materializada está soportado. Utilice el procedimientoREGISTERen el paqueteDBMS_CLOUD_LINKcon el argumentoMV_FAST_REFRESHpara registrar el enlace de nube. - Actualización de un Enlace de Nube con Refrescamiento Rápido de Vista Materializada
Puede actualizar un enlace de nube para indicar que el refrescamiento rápido de vista materializada está soportado en el enlace de nube. - Ejemplo: caso de uso de refrescamiento incremental de vistas materializadas
Este caso de uso muestra cómo compartir datos entre dos instancias de Oracle Autonomous AI Database mediante Cloud Link y vistas materializadas de refrescamiento rápido.
Refrescamiento de Vistas Materializadas
La base de datos mantiene los datos en las vistas materializadas refrescándolos después de los cambios realizados en las tablas base. El refrescamiento de una vista materializada actualiza automáticamente todos sus índices. En el caso del refrescamiento completo, se necesita un espacio de ordenación temporal para volver a crear todos los índices durante el refrescamiento.
Tipos de Refrescamiento para Vistas Materializadas:
A continuación se muestran los métodos de refrescamiento incremental para las vistas materializadas que utilizan enlaces en la nube:
-
refrescamiento basado en log
Para conocer diferentes métodos de refrescamiento, puede consultar el capítulo Refrescamiento de Vistas Materializadas.
El refrescamiento de seguimiento de cambios de partición (PCT) y el refrescamiento de seguimiento de cambios de partición lógica (LPCT) no están soportados para las vistas materializadas que utilizan enlaces en la nube.
Refrescamiento Incremental de Vistas Materializadas sobre Enlaces de Nube
El refrescamiento incremental se suele llamar refrescamiento FAST porque normalmente se realiza más rápido que el refrescamiento completo.
Un refrescamiento incremental elimina la necesidad de volver a crear vistas materializadas desde cero. Por lo tanto, el procesamiento solo de los cambios puede generar un tiempo de actualización muy rápido. En las vistas materializadas que utilizan el método de refrescamiento rápido basado en log, un log de vista materializada conserva un registro de los cambios realizados en las tablas base. Un log de vista materializada es un objeto de esquema que registra los cambios realizados en una tabla base para que una vista materializada definida en la tabla base se pueda refrescar de forma incremental. Cada log de vista materializada está asociado a una única tabla base. El Log de Vista Materializada reside en la misma Base de Datos y el esquema que su tabla base. Puede activar Oracle Autonomous AI Database para definir y refrescar vistas materializadas en tablas remotas a las que se accede mediante enlaces en la nube.
Autonomous AI Database Serverless realiza un refrescamiento incremental de las vistas materializadas mediante el refrescamiento FAST. Este método sólo aplica los cambios realizados desde el último refrescamiento, en lugar de realizar un refrescamiento completo de toda la vista materializada.
- Los paneles de control y los informes se pueden actualizar rápidamente sin recargas de datos completas, lo que permite realizar análisis casi en tiempo real.
- Acuerdos de nivel de servicio (SLA) mejorados para cargas de trabajo de análisis a través de una actualización de datos mejorada.
Consulte Tipos de Vistas Materializadas para ver los distintos tipos de vistas materializadas que soportan el refrescamiento incremental con enlaces en la nube.
Registro de un Enlace de Nube con Refrescamiento Rápido de Vista Materializada
Debe registrar un enlace de nube para indicar que el refrescamiento rápido de la vista materializada está soportado. Utilice el procedimiento REGISTER en el paquete DBMS_CLOUD_LINK con el argumento MV_FAST_REFRESH para registrar el enlace de nube.
SALES_VIEW_AGG del esquema CLOUDLINK. A continuación, se puede registrar como un enlace en la nube con la capacidad de refrescamiento rápido activada mediante la transferencia del valor TRUE para el argumento MV_FAST_REFRESH en el procedimiento 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 proveedor, debe crear la tabla de log de vista materializada en la tabla base de la base de datos de proveedor que corresponde a la vista materializada en la base de datos de consumidor.
Consulte Procedimiento REGISTER para obtener más información.
Actualización de un Enlace de Nube con Refrescamiento Rápido de Vista Materializada
Puede actualizar un enlace de nube para indicar que el refrescamiento rápido de vista materializada está soportado en el enlace de nube.
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;
/Supongamos que posteriormente se crea una tabla de log de vista materializada en la tabla SALES_ALL en el esquema CLOUDLINK. El enlace en la nube se puede actualizar para activar la capacidad de refrescamiento rápido mediante la transferencia del valor TRUE para el argumento MV_FAST_REFRESH en el procedimiento UPDATE_REGISTRATION.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/El procedimiento UPDATE_REGISTRATION permite el refrescamiento rápido de vistas materializadas a través de enlaces en la nube al garantizar que se pueda acceder a la tabla de log de vistas materializadas a través del enlace en la nube. Para que sea accesible, debe transferir un valor de TRUE para el argumento MV_FAST_REFRESH.
Consulte el procedimiento UPDATE_REGISTRATION para obtener más información.
Puesto que el proveedor ha creado los logs de vistas materializadas necesarios. Debe refrescar los metadatos del enlace para asegurarse de que refleja las nuevas tablas de log.
Ejemplo: Caso de Uso de Refrescamiento Incremental de Vistas Materializadas
En este caso de uso se muestra cómo compartir datos entre dos instancias de Oracle Autonomous AI Database mediante Cloud Link y vistas materializadas de actualización rápida.
Considere una organización en la que el equipo de ventas Producer AI Autonomous Database (PRODUCER_DB) almacena transacciones de ventas en directo en una tabla denominada SALES_ALL dentro del esquema CLOUDLINK. El equipo de análisis Consumer AI Autonomous Database (CONSUMER_DB) en el mismo compartimento de OCI accede a estos datos de ventas a través de un enlace de nube registrado y crea una vista materializada de refrescamiento rápido TRUSTED_SALES_MV en el enlace de nube y consulta los datos activos para la generación de informes. Después de insertar una nueva venta de lámpara de escritorio en Producer, una actualización rápida sincroniza solo el cambio al consumidor para informes instantáneos.
- El productor crea una tabla y carga los datos de ventas iniciales.
- El productor registra un enlace de nube para exponer la tabla.
- El productor crea un log de vista materializada para realizar un seguimiento de los cambios.
- El productor actualiza el registro de Cloud Link para permitir una actualización rápida.
- El consumidor crea una vista materializada en el enlace de nube.
- El consumidor consulta la vista materializada para verificar los datos iniciales.
- El productor inserta nuevas transacciones de venta.
- El consumidor realiza un refrescamiento rápido en la vista materializada.
- El consumidor vuelve a consultar la vista materializada para ver los datos actualizados.
Requisitos
Antes de implantar el refrescamiento incremental para las vistas materializadas a través de enlaces en la nube, asegúrese de que se cumplen los siguientes requisitos.
- Los enlaces en la nube se configuran y prueban correctamente.
- Se otorgan los privilegios adecuados a los usuarios que crearán y refrescarán vistas materializadas.
- La base de datos del proveedor tiene configurado el registro de vistas materializadas para las tablas base.
En las siguientes secciones se describe el flujo de trabajo detallado para compartir datos entre dos instancias de Oracle Autonomous AI Database mediante Cloud Link y vistas materializadas de actualización rápida en un caso de uso práctico de ejemplo. Este flujo de trabajo y los ejemplos de código asociados se pueden modificar e implantar según sus necesidades.
Paso 1: Crear tabla y cargar datos de ventas iniciales
El equipo de ventas crea la tabla SALES_ALL que almacena todas las transacciones de confirmación de orden procedentes de la organización, capturando el ID de venta, el nombre del producto, la cantidad, el precio unitario y la fecha de venta. Carga diez transacciones iniciales que van desde el ratón inalámbrico hasta el altavoz Bluetooth.
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;Paso 2: Registrar el enlace de la nube
Para compartir datos de ventas con el equipo de análisis, el DBA principal registra un enlace de nube en la tabla SALES_ALL. Este enlace en la nube denominado SALES en el espacio de nombres TRUSTED_COMPARTMENT es una ventana de solo lectura en los datos del productor. Dado que tanto las bases de datos de IA autónomas de productor como de consumidor están en el mismo compartimento de OCI, el DBA define el ámbito en 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;
/Paso 3: Crear Log De Vista Materializada
Para activar las actualizaciones de refrescamiento incremental, el DBA crea un log de vista materializada en SALES_ALL. Este log captura cada inserción, actualización y supresión, registrando la clave primaria, el ROWID y la información de secuencia necesaria para una actualización rápida.
SALES_ALL:CREATE MATERIALIZED VIEW LOG ON SALES_ALL WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;Con el log de vista materializada en lugar de explorar toda la tabla de productor, el consumidor solo puede solicitar los cambios desde el último refrescamiento.
Paso 4: Actualizar el enlace de la nube para un refrescamiento rápido
Con el log de vista materializada, el DBA actualiza el registro de enlace en la nube para activar el refrescamiento rápido de cualquier vista materializada creada en este enlace.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/La activación del refrescamiento rápido en el nivel de enlace en la nube permite a todos los consumidores beneficiarse de las actualizaciones de refrescamiento incrementales.
Paso 5: Crear Vista Materializada
En la instancia de base de datos de IA autónoma de consumidor, el equipo de análisis crea una vista materializada denominada TRUSTED_SALES_MV que selecciona todas las columnas del enlace en la nube. La vista materializada se configura con REFRESH FAST ON DEMAND, que utiliza el log de vista materializada del productor para aplicar solo cambios incrementales durante cada refrescamiento.
CREATE MATERIALIZED VIEW TRUSTED_SALES_MV REFRESH FAST ON DEMAND AS SELECT * from TRUSTED_COMPARTMENT.SALES@CLOUD$LINK;Los analistas pueden ejecutar agregaciones, uniones y filtros complejos en TRUSTED_SALES_MV sin que esto afecte al productor. Dado que está configurado para un refrescamiento rápido, el consumidor puede mantenerse sincronizado con el productor.
Paso 6: Consulta de la Vista Materializada
Los analistas consultan TRUSTED_SALES_MV para verificar si pueden ver las diez transacciones de venta iniciales. La consulta devuelve los nombres de productos, las cantidades y los precios unitarios de artículos como Wireless Mouse, Ergonomic Chair y External SSD 1TB que coinciden con los datos cargados en la tabla SALES_ALL del productor.
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.00La salida muestra los datos de ventas visibles en la vista materializada Consumidor. Los consumidores ahora pueden acceder a los datos de ventas sin tocar la base de datos de productores.
Paso 7: Insertar nuevos datos de ventas
Más tarde, la organización lanza una venta en lámparas de escritorio para compensar el exceso de inventario. Las transacciones nuevas se procesan y se insertan en SALES_ALL en el productor. El log de vista materializada captura automáticamente esta nueva fila, realizando un seguimiento del cambio para el siguiente refrescamiento de 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;El Productor continúa manejando transacciones en vivo independientemente del Consumidor. El log de vista materializada registra el cambio, lo que permite al consumidor obtener la información durante el siguiente refrescamiento.
Paso 8: Refrescamiento Rápido de la Vista Materializada
La base de datos de IA autónoma del consumidor dispara un refrescamiento rápido de TRUSTED_SALES_MV mediante el procedimiento DBMS_MVIEW.REFRESH con la opción 'F' (rápida). Durante el proceso de refrescamiento, TRUSTED_SALES_MV se actualiza localmente solo con la nueva fila Lámpara de escritorio del log de vista materializada del productor.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/En lugar de volver a leer las diez (o miles) filas, el refrescamiento de la base de datos de IA autónoma del consumidor recupera solo la nueva fila que se agregó desde el último refrescamiento.
Paso 9: Consulta de Vista Materializada Actualizada
Los analistas vuelven a ejecutar la misma consulta y ahora ven once filas, incluida la lámpara de escritorio recién agregada con una cantidad de 10 y un precio unitario de 24,99. Los datos de venta están disponibles inmediatamente para la presentación de informes.
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
La salida muestra los datos de ventas actualizados después de la actualización rápida, incluida la nueva venta de lámpara de escritorio.
La organización ha implantado correctamente un recurso compartido de datos mediante Oracle Autonomous AI Database Cloud Link y ha refrescado rápidamente las vistas materializadas.