Mantenere aggiornati i dati del magazzino delle colonne in memoria

Seleziona una versione della documentazione:

Questa pagina descrive come mantenere l'aggiornamento dei dati nello spazio di archiviazione a colonne del motore columnar in AlloyDB Omni in un container.

Quando le righe della tabella vengono aggiunte, eliminate o aggiornate, il motore colonnare non aggiorna immediatamente i dati nello spazio di archiviazione a colonne. Al contrario, contrassegna i contenuti interessati nell'archivio colonne come non validi e le query vengono pianificate ed eseguite utilizzando sia i dati orientati alle colonne dell'archivio colonne sia i dati orientati alle righe della cache delle righe e dell'archiviazione del database.

Nel tempo, man mano che sempre più blocchi di dati diventano non validi, i miglioramenti delle prestazioni delle query forniti dal motore colonnare si riducono al punto in cui i dati colonnari devono essere aggiornati per recuperare i miglioramenti delle prestazioni delle query. Quando viene raggiunta questa soglia di aggiornamento, il motore colonnare utilizza un job in background per aggiornare i dati non validi nello column store. Per impostazione predefinita, il motore colonnare utilizza una soglia di aggiornamento di 50, il che indica che i contenuti specifici nello spazio di archiviazione a colonne vengono contrassegnati per l'aggiornamento quando il 50% dei contenuti non è più valido. Puoi modificare questa soglia di aggiornamento per regolare l'overhead dell'aggiornamento automatico e potenzialmente ottenere un rendimento migliore delle query in corso per il carico di lavoro dell'applicazione.

Inoltre, puoi aggiornare manualmente i dati di una tabella nell'archivio colonne in qualsiasi momento. In genere, esegui un aggiornamento manuale quando vuoi che le modifiche apportate a una tabella vengano riflesse nel column store il prima possibile dopo averle apportate.

Modificare la soglia di aggiornamento del motore colonnare

Modifica il valore del flag del database google_columnar_engine.refresh_threshold_percentage per modificare la soglia di aggiornamento del motore colonnare.

    ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;

THRESHOLD: un valore intero compreso tra 1 e 100. Questo valore specifica la percentuale di blocchi di dati nei contenuti che devono diventare non validi affinché i contenuti vengano contrassegnati per l'aggiornamento.

Aggiornare manualmente i dati di una tabella nello spazio di archiviazione a colonne

Esegui la funzione SQL google_columnar_engine_refresh per aggiornare manualmente i dati di una tabella nell'archivio colonne in memoria.

SELECT google_columnar_engine_refresh(TABLE_NAME);

TABLE_NAME: una stringa contenente il nome della tabella o della vista materializzata. Se la tabella o la vista si trova in uno schema diverso da public, specifica il nome dello schema utilizzando il formato SCHEMA_NAME.TABLE_NAME, ad esempio myschema.mytable.