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 colonnare in AlloyDB Omni in un container.

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

Nel tempo, man mano che un numero sempre maggiore di blocchi di dati diventa non valido, i miglioramenti delle prestazioni delle query forniti dal motore colonnare si riducono al punto che 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 nel column store. Per impostazione predefinita, il motore colonnare utilizza una soglia di aggiornamento di 50, il che indica che i contenuti specifici nel columnstore 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 prestazioni delle query in corso migliori per il workload dell'applicazione.

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

Modifica la soglia di aggiornamento del motore colonnare

Modifica il valore del flag di 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.

Aggiorna 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 di 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.