A medida que se agregan, borran o actualizan filas de la tabla, el motor de columnas no actualiza los datos del almacén de columnas de forma inmediata. En cambio, marca el contenido afectado en el almacén de columnas como no válido, y las consultas se planifican y ejecutan con datos orientados a columnas del almacén de columnas y datos orientados a filas del almacenamiento en caché de filas y del almacenamiento de base de datos.
Con el tiempo, a medida que más y más bloques de datos dejan de ser válidos, las mejoras en el rendimiento de las consultas que proporciona el motor de columnas se reducen hasta el punto en que los datos de columnas deben actualizarse para recuperar las mejoras en el rendimiento de las consultas. Cuando se alcanza este umbral de actualización, el motor de columnas usa un trabajo en segundo plano para actualizar los datos no válidos en el almacén de columnas. De forma predeterminada, el motor de columnas usa un umbral de actualización del 50%, lo que indica que un contenido determinado en el almacén de columnas se marca para su actualización cuando el 50% de su contenido deja de ser válido. Puedes cambiar este umbral de actualización para ajustar la sobrecarga de la actualización automática y, posiblemente, obtener un mejor rendimiento continuo de las consultas para la carga de trabajo de tu aplicación.
Además, puedes actualizar manualmente los datos de una tabla en el almacén de columnas en cualquier momento. Por lo general, realizas una actualización manual cuando deseas que los cambios en una tabla se reflejen en el almacén de columnas lo antes posible después de realizar los cambios.
Cambia el umbral de actualización del motor de columnas
Edita el valor de la marca de base de datos google_columnar_engine.refresh_threshold_percentage para cambiar el umbral de actualización del motor de columnas.
ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;
THRESHOLD: Es un número entero entre 1 y 100. Este valor especifica el porcentaje de bloques de datos en el contenido que deben dejar de ser válidos para que el contenido se marque para su actualización.
Actualiza manualmente los datos de una tabla en el almacén de columnas
Ejecuta la función google_columnar_engine_refresh de SQL para actualizar manualmente los datos de una tabla en el almacén de columnas en memoria.
SELECT google_columnar_engine_refresh(TABLE_NAME);
TABLE_NAME: Es una cadena que contiene el nombre de la tabla o la vista materializada. Si la tabla o la vista se encuentran en un esquema que no sea public, especifica el nombre del esquema con el formato SCHEMA_NAME.TABLE_NAME, por ejemplo, myschema.mytable.