排查列式引擎问题

选择文档版本:

本页面介绍了如何排查在使用 AlloyDB Omni 列式引擎时可能遇到的问题。如需详细了解列式引擎,请参阅列式引擎概览

修复“共享内存不足”错误

如果您运行 AlloyDB Omni 时没有足够的共享内存供列式引擎使用,则可能会看到以下错误:

Insufficient shared memory for generating the columnar formats.

如需解决此问题,请指定可供 AlloyDB Omni 容器使用的共享内存量。

Linux

  1. 确保您已安装 AlloyDB Omni,并将 /dev/shm 目录装载到容器上。如需了解详情,请参阅自定义 AlloyDB Omni 安装

  2. 使用修改 /etc/fstab 文件等方法来增加宿主机 /dev/shm 分区的大小。

macOS

安装新的 AlloyDB Omni 容器,并--shm-size 标志指定更大的共享内存值

查找在列式引擎中填充的表

g_columnar_relations 视图中,创建查询以查找列式引擎中存在的表。

SELECT * FROM g_columnar_relations;

查找列式引擎使用的总内存

使用 google_columnar_engine_memory_available() SQL 函数确定列式引擎使用的内存量。

SELECT google_columnar_engine_memory_available();

确定特定列是否未在列式引擎中填充

请尝试以下可能的解决方案:

  • 检查列式引擎是否支持相应列的数据类型。
  • 如果您最近向基表添加或从基表中移除了列,请验证您是否在列式引擎中执行了相同的操作。

验证查询是否使用列式引擎

在查询计划中,验证是否存在“自定义扫描(列式扫描)”规划工具节点。

查找正在进行的维护作业

g_columnar_jobs 视图中查询,以查找正在进行的作业。

SELECT * FROM g_columnar_jobs;

设置维护活动在列式引擎中使用的资源量

默认情况下,列式引擎最多使用 20% 的数据库资源。如需增加或减少此用量,请调整 google_columnar_engine.maintenance_cpu_percentage (GUC) 设置。如需了解详情,请参阅调整用于维护任务的 CPU 资源