Solucionar problemas del motor de columnas

En esta página se ofrecen correcciones e información recomendadas para problemas y preguntas habituales sobre el motor columnar de AlloyDB para PostgreSQL.

Has añadido columnas de referencia al motor de columnas, pero tu consulta SELECT no las usa

Descripción: Para usar el motor columnar, todas las columnas a las que se haga referencia en un fragmento de consulta (como las combinaciones y los análisis) deben estar en el almacén de columnas. Si alguna columna a la que se hace referencia no está en el motor columnar, el fragmento de consulta se asigna de forma predeterminada al almacén basado en filas.

Un fragmento de consulta en este contexto es una consulta que puede tener varios nodos de análisis. Por ejemplo, el fragmento de consulta puede tener dos nodos de análisis para una unión. Un nodo de análisis puede usar un formato no columnar y otro nodo de análisis puede usar un formato columnar. Todas las columnas de un nodo de análisis (columnas de filtro y columnas de proyección) deben rellenarse en formato columnar. Del mismo modo, una consulta puede tener algunas particiones en columnas y otras particiones en no columnas.

Solución recomendada: para verificar que todas las columnas a las que se hace referencia están en el motor columnar, sigue estos pasos:

  1. Comprueba los tipos de datos admitidos.

    Asegúrate de que AlloyDB sea compatible con todos los tipos de datos de las columnas que quieras usar con el motor de columnas. Para obtener más información, consulta Tipos de datos admitidos. Si AlloyDB no admite un tipo de datos crítico, ponte en contacto con el equipo de Asistencia de Google Cloud.

  2. Consulta los operadores admitidos.

    Comprueba que AlloyDB admita los operadores de los tipos de datos del motor en columnas. Para obtener más información sobre los operadores admitidos, consulta Tipos de consultas que se benefician del motor columnar.

  3. Ejecuta el comando EXPLAIN COLUMNAR_ENGINE.

    Para identificar y solucionar los problemas que impiden que determinadas consultas usen el motor columnar, ejecuta el siguiente comando EXPLAIN COLUMNAR_ENGINE:

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

No puedes añadir ni eliminar tablas en el motor columnar

Descripción: quieres añadir o eliminar tablas en el motor columnar.

Solución recomendada: compruebe los permisos de usuario. Solo puedes añadir o eliminar tablas en el motor columnar si tienes privilegios de lectura en la tabla.

El tamaño de los datos en columnas supera la memoria asignada

Descripción: se producen problemas de rendimiento o de gestión de datos cuando el tamaño de los datos en columnas supera la memoria asignada al motor en columnas.

Solución recomendada: para conseguir un rendimiento óptimo, usa la función de recomendaciones de AlloyDB para identificar las tablas y las columnas óptimas que se deben rellenar en el motor de columnas.

Si las tablas y las columnas recomendadas superan la memoria física del motor columnar, el exceso de datos columnares utiliza una parte de la capa de caché ultrarrápida. Las consultas sobre los datos restantes de la tabla, que no están en el motor columnar, usan de forma transparente el almacén de filas.

También puedes ajustar la asignación de memoria y caché de almacenamiento del motor columnar. El motor columnar se aprovisiona con un tamaño predeterminado para la memoria y la caché de almacenamiento. Puedes configurar manualmente la memoria y la caché de almacenamiento. Para cambiar la cantidad de memoria o caché de almacenamiento asignada al motor en columnas, consulta Configurar la memoria del motor en columnas.