Uso de Caché de Tablas Externas para Mejorar el Rendimiento de Tablas Externas
La caché de tablas externas en Oracle Autonomous AI Database permite almacenar en caché datos a los que se accede con frecuencia desde tablas externas de la base de datos.
La caché de tablas externas solo está soportada para Oracle AI Database 26ai.
- Acerca de la caché de tablas externas en la base de datos de IA autónoma
Una caché de tablas externa es un área de almacenamiento de la base de datos de IA autónoma que almacena los datos de una tabla externa. - Inicio rápido con cachés de tablas externas
Proporciona ejemplos que le ayudarán a empezar a crear y rellenar cachés de tablas externas. - Elija su preferencia de almacenamiento en caché
Describe cómo elegir la preferencia de almacenamiento en caché adecuada, incluido el comportamiento de la caché y la asignación de tamaño para tablas externas. - Requisitos para Crear Caché de Tabla Externa
Muestra los requisitos para crear la caché de tabla externa. - Uso del almacenamiento en caché basado en políticas para tablas externas
Describe cómo utilizar el almacenamiento en caché basado en políticas para tablas externas en la base de datos de IA autónoma. - Uso del almacenamiento en caché automático para tablas externas
Describe cómo utilizar el almacenamiento en caché automático para tablas externas en la base de datos de IA autónoma. - Supervisión y diagnóstico del rendimiento de la caché de tabla externa
La base de datos de IA autónoma proporciona vistas que permiten supervisar la caché de tabla externa. - Casos de Uso para el Almacenamiento en Caché de Tablas Externas
Describe escenarios comunes en los que el almacenamiento en caché de tablas externas es beneficioso.
Tema principal: Funciones
Acerca de la caché de tablas externas en la base de datos de IA autónoma
Una caché de tabla externa es un área de almacenamiento de la base de datos de IA autónoma que almacena los datos de una tabla externa.
Los datos externos no los gestiona la base de datos; sin embargo, puede utilizar las tablas externas para consultar datos fuera de la base de datos. Las consultas en tablas externas no serán tan rápidas como las consultas en tablas de base de datos porque cada vez que acceda a los datos se deben recuperar de los archivos externos almacenados en el almacén de objetos.
La caché de tabla externa permite almacenar localmente los datos externos a los que se accede con frecuencia. Cuando se utiliza la caché, las consultas en tablas externas pueden recuperar datos directamente desde la base de datos de IA autónoma, lo que las hace significativamente más rápidas. No es necesario cambiar las sentencias SQL o los flujos de trabajo existentes para beneficiarse de un acceso más rápido, ya que este mecanismo de almacenamiento en caché es totalmente transparente para las aplicaciones. Puede crear la caché de tablas externas para tablas externas particionadas y no particionadas creadas en tablas Parquet, ORC, AVRO, CSV y Iceberg.
-
Mejora del rendimiento de los análisis: las consultas son varias veces más rápidas para los datos externos a los que se accede con frecuencia, lo que resulta ideal para paneles de control, informes y herramientas analíticas que acceden a los mismos datos con regularidad.
-
100% transparente: el mecanismo de almacenamiento en caché es totalmente transparente; las aplicaciones pueden beneficiarse de una velocidad mejorada sin necesidad de realizar cambios en sus consultas, paneles de control o aplicaciones.
-
Costos en la nube más bajos: en una aplicación multinube, el almacenamiento en caché reduce la necesidad de repetidas recuperaciones de datos externos del almacenamiento remoto, lo que reduce las tarifas de salida de datos asociadas al acceso a los datos entre regiones o nubes.
-
Control de almacenamiento en caché flexible y detallado: puede almacenar en caché todos los archivos, un porcentaje de archivos o solo los datos actualizados más recientemente. Puede controlar los datos almacenados en caché, el tamaño de la caché y los límites de almacenamiento para las cachés de tablas externas.
Las cachés de tablas externas de la base de datos se pueden gestionar automáticamente o mediante valores basados en políticas. Con la gestión de caché basada en políticas, puede definir políticas simples para rellenar, refrescar y retirar archivos de la caché, lo que le proporciona un control preciso sobre el contenido y el mantenimiento de la caché.
Consulte Consulta de datos externos para obtener más información.
Inicio rápido con cachés de tablas externas
Proporciona ejemplos para ayudarle a empezar a crear y rellenar cachés de tablas externas.
Cree una caché de tabla externa basada en políticas para el esquema SALES.
Al crear una caché, inicialmente está vacía y activada para relleno. El tamaño de la caché aumenta cada vez que se agrega un archivo, según los límites de cuota de espacio definidos para el esquema, hasta que alcanza los límites asignados.
DBMS_EXT_TABLE_CACHE.CREATE_CACHE para crear la caché de tabla externa para el esquema. Por ejemplo:BEGIN
DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
owner => 'SALES',
table_name => 'STORE_SALES',
partition_type => 'PATH');
END;
/
Esto crea una caché para la tabla STORE_SALES en el esquema SALES. STORE_SALES es una tabla externa que apunta a los datos almacenados en el almacén de objetos.
El parámetro owner especifica el nombre del esquema. En este ejemplo se crea una caché de tabla externa para el usuario SALES.
partition_type controla cómo se divide la caché. Con 'PATH', la caché se particiona por la ruta de acceso de carpeta de cada archivo de origen. FILE$PATH es una columna oculta que almacena esa ruta de acceso de carpeta (todo delante del nombre del archivo).
…/n/<ns>/b/<bucket>/o/sales/2024/09/data1.parquet, FILE$PATH = 'sales/2024/09/' (la carpeta).
USER_EXTERNAL_TAB_CACHES para verificar la creación de la caché. Por ejemplo:SELECT external_table_name, cached, disabled
FROM user_external_tab_caches;DBMS_EXT_TABLE_CACHE.VALIDATE para validar una caché de tabla externa. Se informa de un error si no se encuentra la tabla externa a la que se hace referencia en la base de datos. Por ejemplo:BEGIN
DBMS_EXT_TABLE_CACHE.VALIDATE (
owner => 'SALES',
table_name => 'STORE_SALES',
raise_errors => TRUE);
END;
/Ejecute DBMS_EXT_TABLE_CACHE.ADD_TABLE para rellenar una tabla completa en la caché. Por ejemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/En este ejemplo, se intenta rellenar la tabla STORE_SALES en la caché.
Crear cachés de tablas externas gestionadas automáticamente
Por defecto, el almacenamiento en caché automático está desactivado; las cachés AUTO se crean automáticamente al activar el almacenamiento en caché automático.
DBMS_CACHE.SET_USER_PROPERTY para activar el almacenamiento en caché automático de la tabla externa para el esquema HR. Por ejemplo: BEGIN
DBMS_CACHE.SET_USER_PROPERTY (
property_name => 'max_cache_size',
property_value_num => 10737418240);
END;
/En este ejemplo se activa el almacenamiento en caché automático para el esquema HR y se define el parámetro MAX_CACHE_SIZE en 10737418240 bytes, especificando una asignación de caché máxima de 10 GB para las tablas externas en el esquema HR. También crea las cachés necesarias para las tablas externas y las rellena.
BEGIN
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name => 'max_cache_percent',
property_value_num => 20);
END;
/Utilice la propiedad global MAX_CACHE_PERCENT para definir el límite de caché por defecto para todos los usuarios. Al definir MAX_CACHE_PERCENT en 20, el almacenamiento en caché automático de tablas externas puede utilizar hasta el 20% de la cuota de tablespace asignada de cada usuario (por ejemplo, un usuario con una cuota de 100 GB puede almacenar en caché hasta 20 GB, un usuario con una cuota de 10 GB hasta 2 GB). Esta configuración global solo se aplica al almacenamiento en caché automático y es por usuario, no un límite total para todos los usuarios. Puede sustituir este valor por defecto para usuarios individuales ejecutando el procedimiento DBMS_CACHE.SET_USER_PROPERTY.
SELECT external_table_name, cached, auto
FROM all_external_tab_caches;DBMS_CACHE.REFRESH para realizar un refrescamiento bajo demanda para todas las cachés de un usuario especificado. Por ejemplo:BEGIN
DBMS_CACHE.REFRESH (
owner => 'HR',
refresh_type => 'ALL');
END;
/En este ejemplo se actualizan las cachés existentes y se crean nuevas cachés de tablas externas para el esquema HR, según sea necesario. La propiedad refresh_type especifica el ámbito en el que se realiza el refrescamiento.
Elija su preferencia de caché
La caché de tabla externa se crea como un objeto de esquema en la base de datos, al que se asigna espacio físico similar al almacenamiento de tablas e índices en archivos de datos. Al crear una caché de tabla externa, se crea una nueva tabla en el esquema y los límites de cuota de espacio definidos para el esquema también se aplican a la caché de tabla externa.
-
Gestión de Caché Basada en Políticas
-
Definirá explícitamente cómo se crean, rellenan, refrescan y retiran las cachés.
-
Proporciona un control detallado sobre el contenido y el ciclo de vida de la caché.
-
Adecuado cuando se requiere un comportamiento de almacenamiento en caché predecible o personalizado.
-
-
Gestión Automática de Caché
-
La base de datos crea, rellena, refresca y borra automáticamente las cachés.
-
Las acciones se controlan mediante patrones de consulta de tablas externas y uso de carga de trabajo.
-
Ideal para entornos en los que el comportamiento del almacenamiento en caché se debe adaptar dinámicamente sin intervención manual.
-
Requisitos para Crear Caché de Tabla Externa
Muestra los requisitos para crear la caché de tabla externa.
-
Solo puede crear una caché de tabla externa en su propio esquema y para las tablas externas que posee.
-
Debe tener asignada una cuota de espacio adecuada para el esquema a fin de garantizar que haya suficiente capacidad de almacenamiento para los datos de caché.
-
Debe tener credenciales para acceder a los archivos de tabla externa almacenados en el almacén de objetos. No necesita crear credenciales si activa las credenciales de entidad de recurso para acceder al almacén de objetos de Oracle Cloud Infrastructure.
Utilizar el almacenamiento en caché basado en políticas para tablas externas
Describe cómo utilizar el almacenamiento en caché basado en políticas para tablas externas en Autonomous AI Database.
El almacenamiento en caché basado en políticas le proporciona un control explícito sobre cómo se almacenan en caché, refrescan y gestionan los datos externos en la base de datos. En este enfoque, se definen políticas de almacenamiento en caché y se gestiona todo el ciclo de vida de la caché mediante procedimientos PL/SQL disponibles en el paquete DBMS_EXT_TABLE_CACHE. Estos procedimientos permiten realizar explícitamente varias operaciones de ciclo de vida de caché, como crear y rellenar cachés, borrar archivos de la caché y activar o desactivar las cachés.
Este enfoque le proporciona un control detallado sobre el comportamiento de la caché. Puede especificar qué archivos de tabla externa o qué porcentaje de los datos de la tabla externa se deben almacenar en caché, lo que garantiza un uso óptimo del espacio de caché según los requisitos de carga de trabajo. Procedimientos como ADD_BY_LIKE y ADD_LATEST_FILES le permiten filtrar y rellenar archivos en la caché en función de varios parámetros, como patrones de nombre de archivo, tiempos de modificación o criterios de frescura de datos. Del mismo modo, puede utilizar procedimientos como CLEAR, RETIRE_FILES o DROP_BY_LIKE para eliminar archivos de la caché.
Dado que las cachés basadas en políticas no se gestionan mediante un algoritmo de expulsión automática, la base de datos no las elimina automáticamente bajo presión de espacio. Si el espacio en caché no está disponible, es posible que los nuevos archivos no se completen hasta que se libere espacio adicional. Este enfoque proporciona una mayor flexibilidad y es ideal para cargas de trabajo en las que necesita más control sobre el contenido de la caché.
Consulte DBMS_EXT_TABLE_CACHE Package para obtener más información.
En el siguiente diagrama de flujo se describen los pasos para gestionar cachés basadas en políticas mediante el paquete DBMS_EXT_TABLE_CACHE. Incluye pasos clave como la creación, el relleno y el borrado de la caché.
Temas
- Relleno de Archivos en Caché de Tablas Externas
Describe cómo rellenar la caché basada en políticas creada anteriormente. - Borrar Archivos de Caché de Tabla Externa
Muestra ejemplos para borrar archivos de caché de tabla externa. - Desactivación y Activación de Caché de Tabla Externa
Muestra ejemplos para desactivar y activar la caché de tabla externa. - Borrar Caché de Tabla Externa
Muestra un ejemplo para borrar la caché de tabla externa. - Definición de preferencias de tamaño opcionales para cachés basadas en políticas
Describe cómo definir preferencias de tamaño para cachés de tablas externas basadas en políticas en Autonomous AI Database.
Rellenar Archivos en Caché de Tabla Externa
Describe cómo rellenar la caché basada en políticas creada anteriormente.
Después de crear una caché, puede rellenar los archivos en la caché. Al rellenar los archivos, se carga el contenido de los archivos de tabla externa especificados en la caché. Puede elegir rellenar todos los archivos de una tabla, un porcentaje específico de la tabla o especificar una condición de filtro para limitar los archivos que desea rellenar. Por ejemplo, puede filtrar los archivos según sus nombres o un rango de fechas.
-
Según la cuota de espacio asignada para el esquema, Oracle intenta rellenar los archivos en la caché. Si se alcanza el límite de cuota asignado, Oracle deja de rellenar los archivos a menos que se asigne el espacio necesario.
-
La caché de tabla externa no se refresca automáticamente. Para actualizar la caché cuando se modifica un archivo del almacén de objetos, debe volver a rellenar el archivo.
-
Cuando se suprime un archivo del almacén de objetos, los datos almacenados en caché correspondientes se convierten inmediatamente en no válidos y no se pueden recuperar.
Agregar tabla a caché de tabla externa
Utilice DBMS_EXT_TABLE_CACHE.ADD_TABLE para rellenar una tabla completa o un determinado porcentaje de la tabla externa en la caché.
Ejemplos
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/En este ejemplo, se intenta rellenar la tabla STORE_SALES en la caché, omitiendo cualquier archivo existente que ya se haya rellenado.
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES',
percent_files => 80);
END;
/Este ejemplo intenta rellenar el 80% de la tabla STORE_SALES en la caché, omitiendo cualquier archivo existente que ya se haya rellenado.
El parámetro percent_files es opcional; si no especifica este parámetro, toda la tabla se rellena en la caché.
Consulte ADD_TABLE Procedure para obtener más información.
Agregar archivos a caché de tabla externa
-
ADD_FILE: para agregar un único archivo a la caché. -
ADD_BY_LIKE: para agregar uno o más archivos especificados según los filtros de ruta de acceso especificados. -
ADD_LATEST_FILES: para agregar uno o más archivos según el intervalo de tiempo especificado.
Ejemplos
DBMS_EXT_TABLE_CACHE.ADD_FILE para rellenar un único archivo en la caché de tabla externa. Por ejemplo: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;
/En este ejemplo, se rellenan los datos del archivo salesdata.parquet en la caché.
En este ejemplo, se omite rellenar el archivo en la caché si el archivo especificado existe en la caché y no se ha modificado desde la última vez que el archivo se almacenó en caché.
Consulte ADD_FILE Procedure para obtener más información.
DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE para rellenar uno o más archivos en la caché de tabla externa. Por ejemplo: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;
/En este ejemplo, se rellenan todos los archivos con nombres que comienzan por sales o customer, al tiempo que se excluyen los archivos que ya se han rellenado.
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;
/En este ejemplo, se rellenan los archivos sales_data1.parquet y sales_data2.parquet en la caché.
En este ejemplo, el carácter '#' se define como el carácter de escape. El carácter '_' que sigue a '#' se trata como un guion bajo literal, no como un comodín que coincide con un solo carácter.
Consulte ADD_BY_LIKE Procedure para obtener más información.
DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES para rellenar uno o más archivos basados en la fecha de última modificación en la caché de tabla externa. Por ejemplo:BEGIN
DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
owner => 'SALES',
table_name => 'STORE_SALES',
since => INTERVAL '7' DAY,
max_files => 5,
force => TRUE);
END;
/El parámetro since especifica el intervalo de tiempo; solo los archivos modificados en los últimos siete (7) días son elegibles para rellenarse en la caché.
El parámetro max_files limita el número de archivos que se pueden rellenar en la caché. Este ejemplo rellena sólo cinco (5) archivos.
El parámetro force fuerza la sobrescritura de los archivos especificados en la caché aunque los archivos no se hayan modificado.
Consulte ADD_LATEST_FILES Procedure para obtener más información.
Borrar archivos de la caché de tabla externa
Muestra ejemplos para borrar archivos de la caché de tabla externa.
Borrar caché de tabla externa
Utilice DBMS_EXT_TABLE_CACHE.CLEAR para borrar todos los archivos de la caché de tabla externa. Por ejemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.CLEAR (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/En este ejemplo, se borran todos los archivos de la caché STORE_SALES y se anula la asignación de todo el espacio utilizado por los archivos eliminados.
Consulte Procedimiento LIMPIEZA para obtener más información.
Borrar archivos de la caché de tabla externa
-
DROP_FILE: para borrar un único archivo de la caché. -
DROP_BY_LIKE: para borrar uno o más archivos de la caché según los filtros de ruta de acceso especificados. -
RETIRE_FILES: para borrar uno o más archivos de la caché según el intervalo especificado.
Ejemplos
Utilice DBMS_EXT_TABLE_CACHE.DROP_FILE para borrar un archivo de la caché de tabla externa. Por ejemplo:
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;
/En este ejemplo, se borra el archivo salesdata.parquet de la caché y se anula la asignación de todo el espacio utilizado por el archivo eliminado.
Consulte DROP_FILE Procedure para obtener más información.
Utilice DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE para borrar uno o más archivos basados en el parámetro path_filters. Por ejemplo:
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;
/En este ejemplo, se borran los archivos salesdata.parquet y salesdata1.parquet de la caché y se anula la asignación de todo el espacio utilizado por los archivos eliminados.
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;
/En este ejemplo, se borran los archivos sales#_data1 y sales#_data2 de la caché y se anula la asignación de todo el espacio utilizado por los archivos eliminados.
En este ejemplo, el carácter '#' se define como el carácter de escape. El carácter '_' que sigue a '#' se trata como un guion bajo literal, no como un comodín que coincide con un solo carácter.
Consulte DROP_BY_LIKE Procedure para obtener más información.
Utilice DBMS_EXT_TABLE_CACHE.RETIRE_FILES para borrar uno o más archivos según el intervalo especificado. Por ejemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
owner => 'SALES',
table_name => 'STORE_SALES',
before => INTERVAL '30' DAY);
END;
/En este ejemplo, se borran los archivos que tienen más de treinta (30) días de la caché y se anula la asignación de todo el espacio utilizado por los archivos eliminados.
Consulte RETIRE_FILES Procedure para obtener más información.
Los ejemplos anteriores eliminan uno o más archivos de la caché mientras conservan la caché. Puede volver a cargar los archivos en la caché cuando sea necesario. Consulte Relleno de Archivos en Caché de Tabla Externa para obtener más información.
Desactivar y activar caché de tabla externa
Muestra ejemplos para desactivar y activar la caché de tabla externa.
Ejecute DBMS_EXT_TABLE_CACHE.DISABLE para desactivar la caché de tabla externa de la base de datos. La desactivación de una caché no suprime los datos de la caché; en su lugar, la caché se marca como DISABLED y el optimizador no puede utilizar la caché para reescrituras de consulta.
Ejemplo
BEGIN
DBMS_EXT_TABLE_CACHE.DISABLE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/En este ejemplo, se desactiva la caché STORE_SALES.
Consulte DISABLE Procedure para obtener más información.
Después de desactivar una caché de tabla externa, utilice DBMS_EXT_TABLE_CACHE.ENABLE para activar la caché.
BEGIN
DBMS_EXT_TABLE_CACHE.ENABLE (
owner => 'SALES',
table_name => 'STORE_SALES'
);
END;
/Este ejemplo activa la caché STORE_SALES.
Consulte ENABLE Procedure para obtener más información.
Borrar caché de tabla externa
Muestra un ejemplo para borrar la caché de tabla externa.
Ejecute DBMS_EXT_TABLE_CACHE.DROP_CACHE para borrar una caché de tabla externa. El procedimiento DBMS_EXT_TABLE_CACHE.DROP_CACHE elimina la caché de tabla externa especificada de la base de datos y libera el espacio de almacenamiento asociado a la caché.
Ejemplo:
BEGIN
DBMS_EXT_TABLE_CACHE.DROP_CACHE (
owner => 'SALES',
table_name => 'STORE_SALES');
END;
/En este ejemplo se borra la caché STORE_SALES del esquema SALES.
Al borrar una caché, se eliminan los metadatos del diccionario de datos y se suprimen todos los datos almacenados en caché.
Consulte DROP_CACHE Procedure para obtener más información.
USER_EXTERNAL_TAB_CACHES para verificar que la caché se ha borrado. Por ejemplo:SELECT external_table_name, cached
FROM user_external_tab_caches;Consulte Vistas DBA_EXTERNAL_TAB_CACHES y USER_EXTERNAL_TAB_CACHES para obtener más información.
Definir preferencias de tamaño opcionales para cachés basadas en políticas
Describe cómo definir las preferencias de tamaño para las cachés de tablas externas basadas en políticas en Autonomous AI Database.
Por defecto, la caché de tabla externa está desactivada para un usuario. Para activar y crear la caché de tabla externa, utilice el procedimiento DBMS_EXT_TABLE_CACHE.CREATE_CACHE. La caché se crea en el esquema por defecto y hereda los límites de cuota de espacio definidos para el esquema. Sin embargo, también puede utilizar el procedimiento DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY para definir cuotas de espacio para la caché de tabla externa. Utilice los parámetros PROPERTY_NAME y PROPERTY_VALUE del procedimiento DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY para definir los límites de cuota de espacio.
El parámetro PROPERTY_NAME acepta los valores MAX_CACHE_SIZE y MAX_CACHE_PERCENT. La propiedad MAX_CACHE_SIZE especifica el tamaño total de la caché externa en bytes. La propiedad MAX_CACHE_PERCENT especifica el tamaño total de la caché externa como porcentaje de la cuota del usuario especificado.
Ejemplos
BEGIN
DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
property_name => 'MAX_CACHE_PERCENT',
property_value => 50,
owner => 'SALES');
END;
/
En este ejemplo se define la preferencia de almacenamiento en caché en MAX_CACHE_PERCENT para el esquema SALES.
property_value es el 50%, que especifica que la cuota de espacio de caché para el esquema SALES es un máximo del 50% de la cuota de espacio total definida para SALES.
BEGIN
DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
owner => 'SALES',
property_name => 'MAX_CACHE_SIZE',
property_value => 5368709120);
END;
/En este ejemplo se define la preferencia de almacenamiento en caché en MAX_CACHE_SIZE para el esquema SALES.
property_value es 5368709120, que especifica que el tamaño máximo de caché para el esquema SALES es de hasta 5 GB.
Consulte Procedimiento SET_USER_PROPERTY y Procedimiento CREATE_CACHE para obtener más información.
Utilice DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY para recuperar las propiedades de tamaño de caché.
Ejemplo:
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 GET_USER_PROPERTY Function para obtener más información.
Tenga en cuenta el siguiente orden de prioridad para definir las propiedades de tamaño de caché:
-
Cuando se definen
MAX_CACHE_SIZE,MAX_CACHE_PERCENTy la cuota de espacio,MAX_CACHE_PERCENTtiene prioridad sobreMAX_CACHE_SIZE. -
Cuando solo se define
MAX_CACHE_SIZEy no se defineMAX_CACHE_PERCENTo cuota de espacio,MAX_CACHE_SIZEtiene prioridad. -
Cuando solo se define la cuota de espacio y no se definen
MAX_CACHE_SIZEniMAX_CACHE_PERCENT, la cuota de tamaño de caché se define por defecto en el 10% de la cuota de esquema total. -
Cuando no se define
MAX_CACHE_SIZE,MAX_CACHE_PERCENTo la cuota de espacio, la cuota de espacio de caché se define por defecto enUNLIMITED.
Para supervisar el uso de espacio de caché, consulte la columna
CACHE_CUR_SIZE en las vistas ALL_EXTERNAL_TAB_CACHES. Consulte Vistas DBA_EXTERNAL_TAB_CACHES y USER_EXTERNAL_TAB_CACHES para obtener más información.
Utilizar almacenamiento en caché automático para tabla externa
Describe cómo utilizar el almacenamiento en caché automático para tablas externas en Autonomous AI Database.
Al activar el almacenamiento en caché automático para la base de datos, la base de datos gestiona automáticamente todo el ciclo de vida de la caché, incluida la creación, el relleno, el refrescamiento y el borrado, sin necesidad de intervención. Oracle utiliza mecanismos internos para determinar qué tablas externas pueden beneficiarse del almacenamiento en caché, cuándo refrescar las cachés y cuándo borrarlas en función de los patrones de uso y el espacio de almacenamiento disponible. Este enfoque reduce la sobrecarga para la gestión de la caché, ya que el uso de la caché se supervisa continuamente, lo que garantiza que los datos de tablas externas a los que se accede con frecuencia permanezcan disponibles en la caché para mejorar los tiempos de respuesta de las consultas.
Por defecto, el almacenamiento en caché automático no está activado en la base de datos. Para activarla, debe definir el tamaño de caché en un valor distinto de cero mediante procedimientos como DBMS_CACHE.SET_USER_PROPERTY proporcionados en el paquete DBMS_CACHE. Puede configurar el almacenamiento en caché automático para un usuario específico o como valor por defecto para todos los usuarios de la base de datos, según sus requisitos.
Cuando se activa el almacenamiento en caché automático de tablas externas, Oracle crea cachés de tablas externas marcadas como AUTO y rellena todos los datos correspondientes de una tabla externa en su caché si la cuota lo permite. Las cachés AUTO se refrescan automáticamente según un programa normal. Sin embargo, también puede utilizar los procedimientos DBMS_CACHE.REFRESH o DBMS_CACHE.CLEAR para refrescar o borrar las cachés, respectivamente.
Oracle gestiona las cachés de AUTO 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 ciclo de refrescamiento para liberar el espacio de almacenamiento.
Temas
- Activación del Almacenamiento en Caché Automático para Tablas Externas
Describe cómo configurar las propiedades de almacenamiento en caché automático. - Refrescamiento de Cachés de Tabla Externas
Muestra un ejemplo para refrescar las cachés de AUTO para el esquema especificado. - Borrar cachés de tablas externas
Muestra un ejemplo para borrar las cachés de AUTO para el esquema especificado.
Activar almacenamiento en caché automático para tablas externas
Describe cómo configurar las propiedades de almacenamiento en caché automático.
Por defecto, el almacenamiento en caché automático está desactivado, puede activar el almacenamiento en caché automático para las tablas externas, ya sea globalmente para todos los usuarios de la base de datos o para un usuario específico. Después de activar el almacenamiento en caché automático, la base de datos crea automáticamente cachés de tablas externas. Todas las cachés recién creadas se marcan como AUTO. Las cachés existentes siguen la configuración de gestión de caché basada en políticas.
Utilice DBMS_CACHE.SET_GLOBAL_PROPERTY o DBMS_CACHE.SET_USER_PROPERTY para definir las propiedades de almacenamiento en caché de AUTO, incluidas las propiedades para activar el almacenamiento en caché automático global o para un usuario especificado, respectivamente. Las preferencias de almacenamiento en caché a nivel de usuario tienen prioridad sobre las preferencias de almacenamiento en caché global. Utilice los parámetros PROPERTY_NAME y PROPERTY_VALUE de estos procedimientos para definir los límites de cuota de espacio para las cachés de tablas externas.
En función de la cuota de espacio especificada, Oracle crea las cachés e intenta rellenar todos los datos de la tabla externa en la caché. El proceso de relleno falla si el tamaño de la caché no es suficiente para alojar todos los datos de la tabla externa.
Para supervisar el uso de espacio de caché, consulte la columna
CACHE_CUR_SIZE en las vistas ALL_EXTERNAL_TAB_CACHES. Consulte Vistas DBA_EXTERNAL_TAB_CACHES y USER_EXTERNAL_TAB_CACHES para obtener más información.
Tema principal: Uso del almacenamiento en caché automático para la tabla externa
Refrescamiento de Cachés de Tabla Externas
Muestra un ejemplo para refrescar las cachés de AUTO para el esquema especificado.
-
Agregue nuevas cachés.
-
Borrar las cachés no válidas (las cachés a las que no se puede acceder se marcan como no válidas y se borran en el siguiente ciclo de refrescamiento).
-
Actualizar o volver a rellenar las cachés existentes.
-
Borre las cachés a las que se ha accedido menos recientemente cuando hay presión de espacio.
También puede utilizar el procedimiento DBMS_CACHE.REFRESH para realizar un refrescamiento bajo demanda para todas las cachés del usuario HR.
Tema principal: Uso del almacenamiento en caché automático para la tabla externa
Borrado de Cachés de Tabla Externas
Muestra un ejemplo para borrar las cachés de AUTO para el esquema especificado.
Durante cada ciclo de refrescamiento, las cachés no válidas y las cachés a las que se ha accedido menos recientemente se borran de la base de datos. También puede utilizar el procedimiento DBMS_CACHE.CLEAR para borrar todas las cachés de un usuario especificado.
Tema principal: Uso del almacenamiento en caché automático para la tabla externa
Control y Diagnóstico del Rendimiento de la Caché de Tablas Externas
Autonomous AI Database proporciona vistas que le permiten supervisar la caché de tabla externa.
| Ver | Descripción |
|---|---|
|
Proporciona información sobre todas las cachés de tablas externas de la base de datos o sobre las cachés de tablas externas de un usuario. |
|
|
Proporciona información sobre los archivos de Cloud Storage a los que puede acceder el usuario actual y que pertenecen a tablas externas almacenadas en caché. |
|
|
Proporciona información sobre los archivos del almacenamiento en la nube que son propiedad del usuario actual y que pertenecen a tablas externas almacenadas en caché. Esta vista no muestra la columna |
Estas vistas proporcionan información detallada sobre cómo se almacenan, acceden y mantienen en la base de datos los datos almacenados en caché para tablas externas. Estas vistas permiten supervisar el rendimiento de la caché, identificar datos obsoletos o anticuados y analizar el uso del espacio para garantizar una eficacia de consulta óptima. Mediante la supervisión de estas vistas, puede detectar cuándo es necesario refrescar las cachés, verificar que los tamaños de caché estén dentro de los límites configurados y diagnosticar los cuellos de botella de rendimiento relacionados con el acceso a datos externos.
Ejemplos:
SELECT table_name, cached, stale, last_refreshed, last_accessed
FROM all_external_tab_cache_locations
ORDER BY stale DESC, usage_count DESC;La siguiente consulta proporciona información sobre el inventario de caché y el uso de espacio:
SELECT external_table_name, cache_cur_size, cache_max_size, disabled
FROM user_external_tab_caches;Casos de uso del almacenamiento en caché de tablas externas
Describe escenarios comunes en los que el almacenamiento en caché de tablas externas es beneficioso.
| Caso de uso | Qué almacenar en caché | Impacto en costos | Impacto en el rendimiento | Notas |
|---|---|---|---|---|
|
BI interactivo o paneles de control sobre tablas externas |
Tablas externas o particiones consultadas con frecuencia que alimentan paneles de control |
Elimina las lecturas repetidas entre nubes o regionales |
Mantiene los datos en caliente locales para tiempos de respuesta más rápidos y consistentes y evita inicios en frío |
Este es el escenario más común |
|
Análisis multinube (por ejemplo, Autonomous AI Database en OCI que lee S3, GCS o Azure) |
Juegos de datos activos a los que se accede desde almacenes de objetos que no son de OCI |
Reduce la salida entre nubes y reduce los cargos de solicitud de proveedores |
Elimina la latencia de red y la E/S remota |
Reducción conjunta de costos y latencia |
|
Acceso entre regiones (la misma nube) |
Datos externos en una región diferente |
Evita la salida entre regiones en exploraciones repetidas |
Reduce la latencia mediante la localización de lecturas |
La misma lógica que la multinube. |
|
Refrescamiento de Vista Materializada en Datos Externos |
Tablas externas de origen para vistas materializadas |
Reduce la salida repetida para los refrescamientos programados |
Estabiliza y acelera el refrescamiento de la vista materializada; reduce el tiempo de exploración remota |
Ideal para agregados casi en tiempo real |
|
Últimos pipelines de archivos (zona de llegada) |
Últimas |
Los datos más recientes siempre están activos |
||
|
Datos de consulta o referencia pequeños pero frecuentemente unidos |
Tablas externas pequeñas utilizadas en uniones |
Evita la sobrecarga debido a muchas solicitudes pequeñas |
Mantiene los datos de consulta locales para las uniones |
Los datos de diccionario pequeños siempre están actualizados, no es necesario mantener ETL complejo |
|
Ciencia de datos e ingeniería de funciones |
Formación reutilizada o juegos de funciones en tablas externas |
Menos lecturas remotas durante el trabajo iterativo |
Exploraciones repetidas más rápidas durante la experimentación |
Funciona bien con bucles controlados por notebook |
|
Almacén de objetos rallado o regulado |
Cualquier tabla externa de alto tráfico |
Menos reintentos entre muchos usuarios |
Protege las consultas de la limitación del almacén y el rendimiento variable |
Mejora la previsibilidad del SLA |
|
Iceberg o grandes lagos divididos |
Las particiones o instantáneas activas se leen con frecuencia |
Evita lecturas repetidas de las mismas rayas de parquet |
Localiza páginas de datos para particiones activas; tiempos de consulta más estables |
Enlace cruzado a la página de configuración de Iceberg |
|
Exploración ad hoc a escala |
Tablas externas provisionales que ven el acceso repetido |
Evita pagar la salida mientras explora |
Hace que las consultas de seguimiento sean rápidas después del primer pase |
Bueno en rampas sin copiar tuberías. |
