Lorsque des lignes de table sont ajoutées, supprimées ou mises à jour, le moteur de données en colonnes ne met pas immédiatement à jour les données dans le store orienté colonnes. Au lieu de cela, il marque le contenu affecté dans le store orienté colonnes comme non valide, et les requêtes sont planifiées et exécutées à l'aide de données orientées colonnes provenant du store orienté colonnes et de données orientées lignes provenant du cache de lignes et du stockage de la base de données.
Au fil du temps, à mesure que de plus en plus de blocs de données deviennent non valides, les améliorations des performances des requêtes fournies par le moteur de données en colonnes sont réduites au point où les données en colonnes doivent être actualisées pour retrouver ces améliorations. Lorsque ce seuil d'actualisation est atteint, le moteur de données en colonnes utilise une tâche en arrière-plan pour actualiser les données non valides dans le store orienté colonnes. Par défaut, le moteur de données en colonnes utilise un seuil d'actualisation de 50, ce qui indique que le contenu donné dans le store orienté colonnes est marqué pour l'actualisation lorsque 50% de son contenu est devenu non valide. Vous pouvez modifier ce seuil d'actualisation pour ajuster la surcharge de l'actualisation automatique et potentiellement obtenir de meilleures performances de requête continues pour la charge de travail de votre application.
De plus, vous pouvez actualiser manuellement les données d'une table dans le store orienté colonnes à tout moment. En règle générale, vous effectuez une actualisation manuelle lorsque vous souhaitez que les modifications apportées à une table soient reflétées dans le store orienté colonnes dès que possible après avoir effectué les modifications.
Modifier le seuil d'actualisation du moteur de données en colonnes
Modifiez la valeur de l'option de base de données google_columnar_engine.refresh_threshold_percentage pour modifier le seuil d'actualisation du moteur de données en colonnes.
ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;
THRESHOLD : valeur entière comprise entre 1 et
100. Cette valeur spécifie le pourcentage de blocs de données dans le contenu
qui doivent devenir non valides pour que le contenu soit marqué pour l'actualisation.
Actualiser manuellement les données d'une table dans le store orienté colonnes
Exécutez la fonction SQL google_columnar_engine_refresh pour actualiser manuellement les données d'une table dans le store orienté colonnes en mémoire.
SELECT google_columnar_engine_refresh(TABLE_NAME);
TABLE_NAME : chaîne contenant le nom de la table ou de la vue matérialisée. Si la table ou la vue se trouve dans un schéma autre
que public, spécifiez le nom du schéma au format
SCHEMA_NAME.TABLE_NAME (par exemple, myschema.mytable).