ob的执行计划显示不出每个节点处理多少行数据吗?

image
不能显示下面这种么?类似gaussdb的这种?
datanode1image
datanode2 …

还有看数据是否偏移怎么看啊?用hint /*+ skew */吗? 还是怎么用啊?写了这个hint执行计划也没变,不会玩儿…

没有这个hint

那有没有参数啥的呢?可以看数据偏移的

根据您的提问,您似乎想了解有关Datanode在执行SQL时的实际时间、处理的行数以及循环次数等详细统计信息。这些信息通常关联到SQL执行的性能监控与分析。尽管直接提及"datanode的actual time, rows, and loops"的特定细节在提供的文档片段中没有明确展示,但OceanBase数据库确实提供了系统视图来帮助监测SQL执行的性能,这可能间接包含了您关心的数据点。

特别是,系统视图GV$OB_SQL_AUDITV$OB_SQL_AUDIT包含了丰富的SQL执行统计信息,虽然具体字段如actual time, rows, 和 loops未直接列出,这些视图中可能含有与执行时间、处理行数相关的指标。为了获取更详细的执行计划信息,包括每个执行阶段的性能指标,您可以查询V$PLAN_CACHE_PLAN_EXPLAIN视图,它记录了执行计划中每个操作符(operator)的执行统计。

为了更精确地获取到"actual time"(执行时间)、“rows”(处理的行数)以及可能的"loops"(如果这个指的是执行循环或迭代次数的话),建议关注以下几个方面:

  1. 执行时间(Actual Time):在GV$OB_SQL_AUDITV$OB_SQL_AUDIT中寻找与SQL执行时间相关的字段,比如执行开始时间和结束时间,从而间接计算出实际执行时间。

  2. 处理的行数(Rows):同样在上述视图中,可能会有字段反映SQL执行过程中处理的数据行数,这有助于了解SQL的处理规模。

  3. 循环或迭代次数(Loops):这个信息可能不会直接以“loops”的形式出现,但在执行计划(V$PLAN_CACHE_PLAN_EXPLAIN)的详细信息中,某些操作符的执行统计可能会隐含循环或重复执行的迹象,例如索引扫描或表扫描的次数。

综上所述,虽然直接回答您的问题时没有确切指出哪些字段对应"actual time, rows, and loops",但通过查询GV$OB_SQL_AUDITV$OB_SQL_AUDITV$PLAN_CACHE_PLAN_EXPLAIN这些系统视图,结合对结果的分析,您应该能获取到SQL执行的详细性能指标,包括执行时间、处理行数等关键信息。如果需要进一步的定制化监控或具体字段详情,建议查阅OceanBase官方文档的相应章节或直接咨询OceanBase技术支持。

具体信息可参考以下文档:

1 个赞

其实可以借助obdiag 这个工具来收集sql plan monitor报告,这份报告的信息很全面:OceanBase 社区

4.x是多少啊? 我用的就是4.2的版本

抱歉老师,刚刚的描述存在问题。目前优化器没有计算每个节点的预估行数,把总的行数除以节点数就是每个节点的行数(即优化器做了均匀分布假设)