【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】4.2.5
【 使用版本 】社区版
【问题描述】OceanBase如何查看表是否开了并行扫描,有相关视图和参数吗
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】4.2.5
【 使用版本 】社区版
【问题描述】OceanBase如何查看表是否开了并行扫描,有相关视图和参数吗
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
需要根据执行计划来判定,或者OCP中的PARALLEL SQL来确定,没有专门的历史视图存储表是否开启了并行扫描,可以查看表或者索引的信息,看下是否创建表或者索引时候指定了并行度
根据文档库中的信息,您可以使用系统视图 (G)V$OB_SQL_AUDIT
来查看并行执行的运行状态以及一些统计信息。此视图包含多个字段,其中与并行执行相关的字段为:qc_id
、dfo_id
、sqc_id
和 worker_id
。如果这些字段中有非空值,则表示查询启用了并行执行。
此外,您还可以通过检查 SQL 语句中是否使用了 PARALLEL
Hint 或者设置了相关系统变量来确定是否开启了并行扫描。例如:
表级别的 PARALLEL
Hint:
/*+ PARALLEL(table_name n) */
全局并行度 Hint:
/*+ PARALLEL(n) */
系统变量配置 DOP(Degree of Parallelism):
SHOW VARIABLES
命令查看当前设置。为了更具体地了解某个表是否开启了并行扫描,建议结合实际执行计划 (EXPLAIN
) 和上述提到的视图来进行分析。如果需要进一步确认,请提供具体的 SQL 语句和执行上下文以便给出更加准确的答案。
参考文档:(G)V$OB_SQL_AUDIT
请注意,在复杂查询中,调度器可以调度 2 个 DFO 并行流水执行,此时启用的 Worker 数量为并行度的 2 倍,即 PARALLEL * 2
。因此,在分析时也要考虑到这一点。
详情请参考:
__all_table里的dop字段
这个只能看到系统表,看不到业务表
目前确实没有专门的历史视图存储表是否开启了并行扫描