OBCP V4.0每日一题555555555

OBCP V4.0每日一题

问题
OceanBase中,以下哪个命令用于查看一条SQL的执行计划?
A. EXPLAIN
B. DESCRIBE
C. SHOW PLAN
D. ANALYZE

答案
A. EXPLAIN

Tips

  • EXPLAIN命令用于展示SQL语句的执行计划,包括访问路径、连接顺序、使用的索引、各算子的预估行数等信息,是SQL调优的核心工具。
  • DESCRIBE(或DESC)用于查看表结构信息;SHOW PLAN不是有效的OceanBase命令;ANALYZE用于收集表和列的统计信息,帮助优化器生成更准确的执行计划。
  • OceanBase的EXPLAIN支持多种输出格式,如EXPLAIN BASIC(精简模式)、EXPLAIN EXTENDED(详细信息)、EXPLAIN OUTLINE(显示Outline信息)等。
  • 结合EXPLAIN的输出,可以判断SQL是否使用了正确的索引、是否存在全表扫描、是否有不必要的EXCHANGE算子(跨节点数据传输)等性能瓶颈。

延伸思考
在实际运维中,EXPLAIN是定位慢查询最常用的工具。需要注意的是,EXPLAIN展示的是预估执行计划,实际执行情况可能因数据分布、统计信息陈旧等原因与预估有差异。对于复杂SQL,建议使用EXPLAIN EXTENDED查看更详细的执行计划,并结合实际执行信息(如通过GV$SQL_PLAN_MONITOR视图)进行综合判断。

3 个赞

分析的到位 :face_with_hand_over_mouth:

1 个赞

要实践,mysql 模式desc 也是可以 查看执行计划的。

1 个赞

DESCRIBE 和 EXPLAIN 语句是同义词
DESCRIBEEXPLAIN 语句是同义词。在实践中,DESCRIBE 关键字更常用于获取有关表结构的信息,而 EXPLAIN 用于获取查询执行计划(即,解释 MySQL 如何执行查询)。
image

1 个赞

分析了,答案还是错误的 :sweat_smile:

1 个赞

要看执行计划,不是看表结构 :face_with_hand_over_mouth:

1 个赞

1 个赞

使用explain 命令查看执行计划

1 个赞