Maintenir la fraîcheur des données du magasin de colonnes en mémoire

Cette page explique comment maintenir la fraîcheur des données dans le store orienté colonnes de l'engin de colonnes dans AlloyDB Omni dans un conteneur.

Lorsque des lignes de table sont ajoutées, supprimées ou mises à jour, le moteur de colonnes ne met pas immédiatement à jour les données dans le magasin de colonnes. Au lieu de cela, il marque le contenu concerné dans le magasin de colonnes comme non valide. Les requêtes sont planifiées et exécutées à l'aide des données orientées colonnes du magasin de colonnes et des données orientées lignes 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 colonnes sont réduites au point où les données de colonnes doivent être actualisées pour retrouver les améliorations des performances des requêtes. Lorsque ce seuil d'actualisation est atteint, le moteur de colonnes utilise une tâche en arrière-plan pour actualiser les données non valides dans le magasin de colonnes. Par défaut, le moteur de colonnes utilise un seuil d'actualisation de 50, ce qui signifie qu'un contenu donné du magasin de colonnes est marqué pour actualisation lorsque 50% de son contenu est devenu non valide. Vous pouvez modifier ce seuil d'actualisation pour ajuster les coûts liés à l'actualisation automatique et potentiellement améliorer les performances des requêtes en cours pour votre charge de travail d'application.

De plus, vous pouvez actualiser manuellement les données d'un tableau dans le magasin de colonnes à tout moment. En général, vous effectuez une actualisation manuelle lorsque vous souhaitez que les modifications apportées à une table soient reflétées dans le magasin de colonnes dès que possible après les avoir apportées.

Modifier le seuil d'actualisation du moteur de données en colonnes

Modifiez la valeur de l'indicateur 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 du contenu qui doivent devenir non valides pour que le contenu soit marqué pour 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 magasin de 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).