L'auto-colonnarizzazione consente al motore colonnare di scegliere e compilare le colonne che offrono al tuo workload il maggiore aumento delle prestazioni entro le dimensioni attuali della memoria dell'archivio di colonne. Nelle nuove istanze è attivo per impostazione predefinita e viene eseguito ogni ora.
Utilizzando l'auto-colonnarizzazione, il motore colonnare colonnarizza automaticamente i dati nell'archivio a colonne e migliora le prestazioni complessive dei workload di elaborazione transazionale e analitica ibrida (HTAP) e di elaborazione analitica online (OLAP).
Il motore colonnare campiona un workload dell'applicazione e analizza le query per determinare quali colonne sono buoni candidati ipotetici per l'inclusione nell'archivio di colonne. Inoltre, compila automaticamente le colonne nell'archivio di colonne che offre il miglior aumento delle prestazioni dopo aver considerato le dimensioni attuali della memoria dell'archivio di colonne.
Per impostazione predefinita, nelle nuove istanze è abilitata l'auto-colonnarizzazione, configurata per consigliare e compilare le colonne nell'archivio di colonne una volta all'ora. Puoi eseguire l'auto-colonnarizzazione immediatamente o modificare la pianificazione predefinita di ogni ora in un intervallo di tempo desiderato per eseguire l'auto-colonnarizzazione.
Quando un'istanza viene riavviata, il motore colonnare cancella le colonne precedentemente consigliate e compilate e riavvia l'auto-colonnarizzazione.
Dopo che l'auto-colonnarizzazione ha suggerito le colonne, puoi esaminare i risultati dei suggerimenti visualizzando le colonne suggerite.
Esegui immediatamente l'auto-colonnarizzazione
Puoi eseguire l'auto-colonnarizzazione immediatamente prima che la pianificazione predefinita diventi effettiva.
Per eseguire immediatamente l'auto-colonnarizzazione:
Client psql
SELECT google_columnar_engine_recommend();
Modifica la pianificazione predefinita per l'auto-colonnarizzazione
Per modificare la pianificazione predefinita di un'istanza per l'esecuzione dell'auto-colonnarizzazione, imposta il flag google_columnar_engine.auto_columnarization_schedule dell'istanza su un nuovo intervallo di tempo.
Il flag assume il valore EVERY NUMBER {HOURS|DAYS}.
Ad esempio: EVERY 12 HOURS o EVERY 2 DAYS.
Per saperne di più sull'impostazione dei flag di database, consulta Configura i flag di database di un'istanza.
Visualizza le informazioni sulle colonne consigliate
Puoi visualizzare informazioni sulle dimensioni delle colonne consigliate, sull'elenco delle colonne consigliate e sulla pianificazione dei suggerimenti.
Per visualizzare l'elenco delle colonne consigliate:
Client psql
SELECT database_name, schema_name, relation_name, column_name FROM g_columnar_recommended_columns;
Per visualizzare la pianificazione dei suggerimenti per le colonne:
Client psql
SELECT * FROM g_columnar_schedules;
Reimposta l'auto-colonnarizzazione e rimuovi le colonne consigliate
Puoi reimpostare l'auto-colonnarizzazione, inclusi tutti i dati raccolti per generare i suggerimenti.
In questo modo vengono rimosse le colonne aggiunte automaticamente all'archivio di colonne tramite l'auto-colonnarizzazione.
Per reimpostare l'auto-colonnarizzazione:
Client psql
SELECT google_columnar_engine_reset_recommendation(drop_columns => true);
Dimensioni della memoria dell'archivio di colonne consigliate
Il motore colonnare può consigliare la dimensione della memoria dell'archivio di colonne migliore, insieme all'elenco di colonne per il tuo workload che offre i maggiori miglioramenti delle prestazioni.
Puoi aggiornare google_columnar_engine.memory_size_in_mb in base ai
suggerimenti.
Per consigliare le dimensioni della memoria per l'archivio colonne:
Client psql
SELECT * FROM google_columnar_engine_recommend(mode => 'RECOMMEND_SIZE');
Disabilita l'auto-colonnarizzazione
Per disattivare l'auto-colonnarizzazione su un'istanza principale o di un pool di lettura, imposta il flag google_columnar_engine.enable_auto_columnarization dell'istanza su off.
Per saperne di più sull'impostazione dei flag di database, consulta Configura i flag di database di un'istanza.