PostgreSQL执行计划(一)命令参数

SQL执行计划详解
本文详细介绍了如何使用explain命令查看SQL执行计划,包括基本执行计划、analyze、buffers参数的使用及输出格式的选择,帮助理解数据库查询优化。

    用explain命令显示SQL的执行计划,命令格式如下:

explain [option] statement;

    其中,option是命令的可选选项,包括:

analyzeboolean通过实际执行SQL获得相应的执行计划
verboseboolean显示执行计划的附件信息
costsboolean显示计划节点的启动成本,总成本,估计行数和每行宽度
buffersboolean显示缓冲区使用的信息(只能与analyze一起使用)
formattext | xml | json | yaml 指定输出格式

1.基本执行计划

 explain select * from "Family1" where "ID" <4;

 (1)Seq Scan on "Family1" 表示顺序扫描表Family1。

 (2)cost=0.00..16.63  中 0.00表示返回第一行的时间(启动时间),16.63表示返回所有数据的时间(执行时间)。

 (3)rows=177  表示会返回177行。

 (4)width=124 表示每行平均宽度为124字节。

 (5) Filter: ("ID" < 4)  过滤条件,当扫描数据行时,找出满足过滤条件的行。

2.analyze

    加上参数analyze,可以通过实际执行SQL语句获得更精确的执行计划。

 explain analyze select * from "Family1" where "ID" <4;

    actual time=0.483..0.484 rows=2 loops=1 实际启动时间0.483,执行时间0.484 返回行数2。

3.buffer

    联合使用analyze 和buffers,通过执行来查看实际代价和缓冲区命中的情况。

 explain (analyze true,buffers true)  select * from "Family1" where "ID" <4;

    Buffers: shared hit=1 共享内存中直接读到1个块。 

4. format 

    指定输出的执行计划为json格式。

 explain (format json) select * from "Family1" where "ID" <4;

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值