本页面介绍了如何在 AlloyDB for PostgreSQL 实例上启用或停用列式引擎。还介绍了如何为其列存储区配置适当的初始大小,以及如何进行内存和存储缓存设置以实现最佳性能。
如需在使用 AlloyDB Omni 时使用列式引擎,请参阅在 AlloyDB Omni 中启用列式引擎。
这些操作都涉及更改其中一个 AlloyDB 实例上的数据库标志的值。如需详细了解如何设置数据库标志,请参阅配置实例的数据库标志。
如需了解 AlloyDB 列式引擎的概念概览,请参阅 AlloyDB 列式引擎简介。
启用列式引擎
如需在实例上使用列式引擎,请将实例的 google_columnar_engine.enabled
标志设置为 on
。
如需详细了解如何在 AlloyDB 中设置数据库标志,请参阅配置实例的数据库标志。
配置列存储区的大小
在实例上启用列式引擎后,AlloyDB 会分配一部分实例内存来存储其列式数据。将高速 RAM 专门用于列存储区可确保 AlloyDB 能够尽可能快地访问列式数据。
内存和存储空间缓存共同代表列式引擎的总容量。
为列式引擎配置内存
如果列存储区大于实例内存的已分配部分,AlloyDB 会自动使用实例的底层缓存层来存储额外的列式数据。默认情况下,AlloyDB 会将实例内存的 30% 分配给列存储区,并在您调整实例大小时自动调整分配总量。您可以将实例的内存修改为最多 50%。如需查找适合您的实例的建议列式引擎内存大小,请参阅建议列存储区内存大小。
您还可以使用 google_columnar_engine.memory_size_in_mb
标志将分配设置为固定的特定大小。
如需让 AlloyDB 恢复默认分配,请从实例中移除该标志。
如需详细了解如何设置或删除标志,请参阅配置实例的数据库标志。
为列式引擎配置存储缓存
列式引擎的存储缓存是根据实例层级配置的。
实例层级 | 默认列式引擎缓存大小 | |
---|---|---|
主实例 | 读取副本实例 | |
2 个 vCPU | 18.75 GB | 37.5 GB |
4 个 vCPU | 18.75 GB | 37.5 GB |
8 个 vCPU | 18.75 GB | 37.5 GB |
16 个 vCPU | 37.5 GB | 37.5 GB |
32 个 vCPU | 75 GB | 75 GB |
64 个 vCPU | 150 GB | 150 GB |
96 个 vCPU | 300 GB | 300 GB |
128 个 vCPU | 450 GB | 450 GB |
借助 google_columnar_engine.storage_cache_size
标志,您可以调整列式引擎存储缓存,并受下表中列出的最小值和最大值的限制:
实例层级 | 列式引擎缓存大小下限 | 列式引擎缓存大小上限 | |
---|---|---|---|
主实例 | 读取副本实例 | ||
2 个 vCPU | 0 | 187.5 GB | 375 GB |
4 个 vCPU | 0 | 187.5 GB | 375 GB |
8 个 vCPU | 0 | 187.5 GB | 375 GB |
16 个 vCPU | 0 | 375 GB | 375 GB |
32 个 vCPU | 0 | 750 GB | 750 GB |
64 个 vCPU | 0 | 1500 GB | 1500 GB |
96 个 vCPU | 0 | 3000 GB | 3000 GB |
128 个 vCPU | 0 | 4500 GB | 4500 GB |
监控列式引擎的存储缓存数据
如需查看有关列式引擎的存储缓存的信息,您可以运行以下其中一个 SQL 查询。
SQL 查询 | 说明 |
---|---|
SELECT google_columnar_engine_storage_cache_used(); |
返回已使用的列式引擎存储缓存的大小。 |
SELECT google_columnar_engine_storage_cache_available(); |
返回未使用的列式引擎存储缓存的大小。 |
SELECT google_columnar_engine_storage_cache_total(); |
返回列式引擎的存储缓存的配置大小总量。 |
启用向量化联接
列式引擎具有向量化联接功能,可通过对符合条件的查询应用向量化处理来提高联接性能。
启用向量化联接后,AlloyDB 查询规划工具可以选择应用向量化联接运算符,而不是标准 PostgreSQL 哈希联接运算符。规划工具通过比较使用任意一种方法执行查询的成本,来做出此决策。
如需在实例上启用向量化联接,请将实例的 google_columnar_engine.enable_vectorized_join
标志设置为 on
。
默认情况下,AlloyDB 会将一个线程分配给向量化联接功能。您可以通过将 google_columnar_engine.vectorized_join_threads
标志设置为更大的值,来增加此功能可用的线程数量。
手动刷新列式引擎
默认情况下,列式引擎设置为在启用时在后台自动刷新列式存储区。在某些情况下,您可能需要手动刷新列式存储区,例如,如果自动刷新未刷新包含大量无效区块的关系。
如需手动刷新列引擎,请运行以下 SQL 查询:
SELECT google_columnar_engine_refresh('TABLE_NAME');
将 TABLE_NAME
替换为您要手动刷新的表或物化视图的名称。
停用列式引擎
如需在实例上停用列式引擎,请将 google_columnar_engine.enabled
标志设置为 off
。
设置此标志后,实例会自动重启。
排查列式引擎问题
如果列未在列式引擎中填充,则可能存在以下情况之一:
您要添加的列包含不受支持的数据类型。
不符合列式引擎的要求。
如需查找此问题的原因,请尝试以下操作:
后续步骤
请参阅列式引擎数据库标志的完整列表。
了解自动列式处理。