修复“共享内存不足”错误
如果您运行 AlloyDB Omni 时没有足够的共享内存供列式引擎使用,则可能会看到以下错误:
Insufficient shared memory for generating the columnar formats.
如需解决此问题,请指定可供 AlloyDB Omni 容器使用的共享内存量。
Linux
确保您已安装 AlloyDB Omni,并将
/dev/shm
目录装载到容器上。如需了解详情,请参阅自定义 AlloyDB Omni 安装。使用修改
/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 资源。