Risolvere i problemi del motore colonnare

Questa pagina fornisce correzioni e informazioni consigliate per problemi e domande comuni riguardo al motore colonnare di AlloyDB per PostgreSQL.

Hai aggiunto colonne a cui viene fatto riferimento al motore colonnare, ma la query SELECT non le utilizza

Descrizione:per utilizzare il motore colonnare, tutte le colonne a cui viene fatto riferimento in un frammento di query, ad esempio join e scansioni, devono trovarsi nel column store. Se una colonna a cui viene fatto riferimento non si trova nel motore colonnare, il frammento di query viene impostato per impostazione predefinita sullo spazio di archiviazione basato sulle righe.

Un frammento di query in questo contesto è una query che può avere più nodi di scansione. Ad esempio, il frammento di query può avere due nodi di scansione per un'unione. Un nodo di scansione potrebbe utilizzare un formato non colonnare e un altro nodo di scansione potrebbe utilizzare un formato colonnare. Tutte le colonne di un nodo di scansione, ovvero le colonne filtro e le colonne di proiezione, devono essere compilate in formato colonnare. Allo stesso modo, una query può avere alcune partizioni in formato colonnare e altre in formato non colonnare.

Soluzione consigliata: per verificare che tutte le colonne a cui viene fatto riferimento si trovino nel motore colonnare, segui questi passaggi:

  1. Controlla i tipi di dati supportati.

    Assicurati che AlloyDB supporti tutti i tipi di dati delle colonne che intendi utilizzare con il motore colonnare. Per ulteriori informazioni, vedi Tipi di dati supportati. Se AlloyDB non supporta un tipo di dati critico, valuta la possibilità di contattare l'assistenza Google Cloud.

  2. Controlla gli operatori supportati.

    Assicurati che AlloyDB supporti gli operatori sui tipi di dati nel motore colonnare. Per saperne di più sugli operatori supportati, consulta Tipi di query che traggono vantaggio dal motore colonnare.

  3. Esegui il comando EXPLAIN COLUMNAR_ENGINE.

    Per identificare e risolvere i problemi che impediscono a query specifiche di utilizzare il motore colonnare, esegui il seguente comando EXPLAIN COLUMNAR_ENGINE:

    EXPLAIN (COLUMNAR_ENGINE, ANALYZE) SELECT column1, column2 FROM my_table WHERE column3 > 100;
    

Non puoi aggiungere o eliminare tabelle nel motore colonnare

Descrizione:vuoi aggiungere o eliminare tabelle nel motore colonnare.

Correzione consigliata:verifica le autorizzazioni utente. Puoi aggiungere o eliminare tabelle nel motore colonnare solo se disponi dei privilegi di lettura sulla tabella.

Le dimensioni dei dati colonnari superano la memoria allocata

Descrizione: si verificano problemi di prestazioni o di gestione dei dati quando le dimensioni dei dati colonnari superano la memoria allocata per il motore colonnare.

Correzione consigliata: per prestazioni ottimali, utilizza la funzionalità di suggerimenti in AlloyDB per identificare le tabelle e le colonne ottimali da compilare nel motore a colonne.

Se le tabelle e le colonne consigliate superano la memoria fisica del motore colonnare, i dati colonnari in eccesso utilizzano una parte del livello di cache ultraveloce. Le query sui dati rimanenti nella tabella, che non si trovano nel motore colonnare, utilizzano in modo trasparente l'archivio di righe.

Puoi anche regolare l'allocazione della memoria del motore colonnare e della cache di archiviazione. Il motore colonnare viene sottoposto a provisioning con una dimensione predefinita per la memoria e la cache di archiviazione. Puoi configurare manualmente la cache di memoria e archiviazione. Per modificare la quantità di memoria o cache di archiviazione allocata al motore colonnare, vedi Configurare la memoria per il motore colonnare.