A. PlanCache是KVCache的一部分
B. 每个租户都有独立的PlanCache,租户所在的所有OBServer共享同一个PlanCache
C. PlanCache的大小可以动态调整
D. SQL首次执行时将执行计划缓存在PlanCache缓存中,再次执行时直接从PlanCache获取Plan
2 个赞
选择ACD
-
A. PlanCache 是 KVCache 的一部分 OceanBase 的 PlanCache 底层基于 KVCache 实现,Key 为参数化 SQL,Value 为对应的执行计划,属于 KVCache 的典型应用场景。
-
C. PlanCache 的大小可以动态调整 PlanCache 的最大内存由
ob_plan_cache_percentage参数控制,可动态调整,默认值为租户内存上限的 5%。 -
D. SQL 首次执行时将执行计划缓存在 PlanCache 缓存中,再次执行时直接从 PlanCache 获取 Plan 这是 PlanCache 的核心作用:避免重复硬解析 SQL,相同 SQL 再次执行时直接复用缓存的执行计划,大幅提升性能。
选项B错误
- B. 每个租户都有独立的 PlanCache,租户所在的所有 OBServer 共享同一个 PlanCache 每个租户在每一台 OBServer 上都有独立的 PlanCache,并非跨节点共享。不同 OBServer 上的 PlanCache 是相互独立的。
AD
关于OceanBase V4中PlanCache的描述,以下选项是正确的:
- C. PlanCache的大小可以动态调整
描述正确。可以通过修改租户系统变量ob_plan_cache_percentage来调整PlanCache的大小。 - D. SQL首次执行时将执行计划缓存在PlanCache缓存中,再次执行时直接从PlanCache获取Plan
描述正确。SQL首次执行时会生成执行计划并将其缓存在PlanCache中,后续相同的SQL可以直接使用缓存中的执行计划。
错误的描述:
- A. PlanCache是KVCache的一部分
描述不正确。PlanCache和KVCache是OceanBase数据库中两个独立的内存管理组件。 - B. 每个租户都有独立的PlanCache,租户所在的所有OBServer共享同一个PlanCache
描述不正确。每个租户在每一台服务器上都有一个独立的计划缓存,而不是所有OBServer共享同一个PlanCache。
详情请参考:
选择ACD
1 个赞