1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
AntDB简介
快速入门
用户手册
登录数据库
建表
增删改查
建索引
执行计划
事务自动提交设置
数据安全
系统架构
最佳实践
参考指南
  • 文档首页 /
  • 用户手册 /
  • 执行计划 /
  • 查看执行计划

查看执行计划

更新时间:2024-04-13 18:41:43
explain select * from test1 where id=1;

                         QUERY PLAN                          
-------------------------------------------------------------
 Cluster Gather  (cost=0.00..27.68 rows=6 width=36)
   ->  Seq Scan on test1  (cost=0.00..25.88 rows=6 width=36)
         Filter: (id = 1)
(3 rows)

上述操作不会真正执行SQL语句,仅仅打印执行计划,如果想看SQL的真实执行计划,需要加上analyze关键字:

antdb=# explain analyze select * from test1 where id=1;
                                              QUERY PLAN                                               
-------------------------------------------------------------------------------------------------------
 Cluster Gather  (cost=0.00..27.68 rows=6 width=36) (actual time=1.527..1.527 rows=0 loops=1)
   ->  Seq Scan on test1  (cost=0.00..25.88 rows=6 width=36) (actual time=0.054..0.054 rows=0 loops=1)
         Filter: (id = 1)
 Planning Time: 0.345 ms
 Execution Time: 2.256 ms
(5 rows)

与之前相比较,会发现执行计划多了actual的内容,表示SQL真实执行时候的一些指标。

因为analyze会真正执行SQL,所以在查看insert、delete、update等语句的执行计划时,谨慎使用analyze

每一行代表一个执行步骤,其中的指标说明如下:

  • cost=0.00..27.68: 预计的cost大小,0.00表示第一行数据返回的cost,27.68表示所有数据返回的cost。
  • rows=6: 预估或者实际执行返回的行数。
  • width=36:预估的行宽度,单位字节。
  • time=1.527..1.527:实际执行的时间,单位 ms。与cost类似,先显示第一行返回的时间,再显示所有结果返回的时间。
  • loops=1: 该步骤执行了多少次。
问题反馈