关于 OceanBase 内存管理与性能调优,以下说法正确的是? 单选题
A. 租户 MemStore 写入限速的触发阈值由 memstore_limit_percentage 单独控制,与 freeze_trigger_percentage 无关。
B. 当租户 MemStore 内存使用量达到阈值触发冻结后,必须等到合并完成才能释放 Frozen MemTable 占用的内存。
C. 在 OceanBase V4.x 版本中,SPM(SQL Plan Management)可以作为长期稳定的自动化计划管理方案,系统可自动捕获并验证执行计划,避免计划退化问题。
D. Outline 计划绑定必须基于 SQL_TEXT 方式创建,不能使用 SQL_ID 方式,因为 SQL_ID 方式无法匹配参数化后的 SQL。
解析 :在 OceanBase V4.x 及以上版本,SPM 提供了系统级自动化的计划固定和演进能力,开启相关参数后系统可自动捕获计划、灰度验证性能,避免统计信息变化导致的执行计划退化。
选项 A 错误,写入限速由 writing_throttling_trigger_percentage (默认 60%)单独控制,当 MemStore 使用率达到该阈值时延缓内存申请;freeze_trigger_percentage (默认 20%)控制的是转储触发阈值,计算公式为:租户内存 × memstore_limit_percentage (默认 50%)× freeze_trigger_percentage 。
选项 B 错误,触发冻结生成 Frozen MemTable 后,系统会自动调度转储 (Minor Compaction),转储完成后即释放 Frozen MemTable 占用的内存,无需等待合并。
选项 D 错误,OceanBase 支持通过 SQL_TEXT 或 SQL_ID 两种方式创建 Outline,生产环境推荐使用 SQL_ID 方式以避免格式匹配问题。
未来OB之神
#5
OceanBase V4.x 版本的 SPM 确实可以作为一套长期稳定的自动化计划管理方案。系统能够自动捕获并验证新生成的执行计划,确保性能更优的计划在经过验证后才被用于生产,从而有效避免因统计信息变化或版本升级等原因导致的计划退化问题。
所以C说法是正确的。选C