postgresql获取真正的execution plan

analyze会真正执行,除了select语句,最好放在一个事务中运行,然后rollback.

BEGIN;

EXPLAIN ANALYZE UPDATE ...;

ROLLBACK;

常用方式如下:

EXPLAIN (ANALYZE, BUFFERS, TIMING) SELECT ...;

sql 复制代码
ccc=# select * from t1;
 id | name 
----+------
  1 | aaa
  2 | bbb
  3 | ccc
  4 | ddd
(4 rows)

ccc=# begin;
BEGIN
ccc=*# EXPLAIN (ANALYZE, BUFFERS, TIMING) update t1 set name='yyy' where id=3;
                                              QUERY PLAN                                               
-------------------------------------------------------------------------------------------------------
 Update on t1  (cost=0.00..21.25 rows=0 width=0) (actual time=0.113..0.114 rows=0.00 loops=1)
   Buffers: shared hit=3 dirtied=1
   ->  Seq Scan on t1  (cost=0.00..21.25 rows=4 width=64) (actual time=0.012..0.014 rows=1.00 loops=1)
         Filter: (id = 3)
         Rows Removed by Filter: 3
         Buffers: shared hit=1
 Planning:
   Buffers: shared hit=3 read=6
 Planning Time: 2.737 ms
 Execution Time: 2.241 ms
(10 rows)

ccc=*# rollback;
ROLLBACK
ccc=# select * from t1;
 id | name 
----+------
  1 | aaa
  2 | bbb
  3 | ccc
  4 | ddd
(4 rows)

ccc=#

调试执行计划时可以临时enable/disable一些选项,详细列表见:

https://www.postgresql.org/docs/current/runtime-config-query.html

-- Plan with nested loop allowed (default)

EXPLAIN (ANALYZE, FORMAT JSON)

SELECT ... ;

-- Compare with nested loop discouraged

BEGIN;

SET LOCAL enable_nestloop = off;

EXPLAIN (ANALYZE, FORMAT JSON)

SELECT ... ;

COMMIT;

相关推荐
行业研究员30 分钟前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
yixun_gdas32 分钟前
企业网站内容巡查的价值与方法:企业官网的合规与形象管理
数据库·内容运营
见闻小天地36 分钟前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库
辛迪聊物业数字化36 分钟前
物业管理系统新手部署与实操指南
数据库·物联网·架构·系统架构
March.s1 小时前
MySQL 数据库原理与实战:从数据管理到 LAMP 建站全解
数据库·mysql
字节跳动的猫1 小时前
LikeShop 种草社区模块二开:笔记发布、话题广场与商品挂载实现
数据结构·数据库
IvorySQL1 小时前
PostgreSQL 日报| PostgreSQL JDBC 安全更新(10 月 10 日)
数据库·postgresql·区块链
晚风叙码2 小时前
MySQL 增删改查(CRUD)完全指南:从入门到面试
数据库·mysql·面试
dishugj2 小时前
HANA集群计划内切换与维护操作
java·linux·数据库
IvorySQL11 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql