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视图)进行综合判断。


