【Postgresql】pg_show_plans插件

介绍

pg_show_plans是一个显示当前运行的所有SQL语句执行计划的模块。它在plan结束位置,截获并存储当前plan tree,从而使其他会话可以打印存储plan tree。目前此模块支持从9.5到14的PostgreSQL版本。它会在共享内存上创建一个哈希表,以便临时存储查询计划。哈希表大小不能更改,因此如果哈希表已满,则不会存储计划。

git地址:GitHub - cybertec-postgresql/pg_show_plans: Show query plans of all currently running SQL statements

 安装步骤

以ubuntu22+postgresql14为例

root$ cd /usr/share/postgresql/14/contrib/
root$ git clone https://github.com/cybertec-postgresql/pg_show_plans.git
root$ cd pg_show_plans
root$ export USE_PGXS=1  ##ubuntu系统需要
root$ make && make install
su - postgres
vi /etc/postgresql/14/main/postgresql.conf
# 修改shared_preload_libraries = 'pg_show_plans'如果有多个插件用逗号隔开
# 还可以加入下列专用参数
# pg_show_plans.enable 是否可以显示计划。
# pg_show_plans.plan_format 它控制查询计划的输出格式。可以选择文本或JSON。默认为文本。
# pg_show_plans.max_plan_length 它设置查询计划的最大长度。默认值为8192[字节]。此参数必须设置为整数

pg_ctl restart
psql
CREATE EXTENSION pg_show_plans;
\d pg_show_plans

 使用方法示例:

su - postgres
psql
# 执行要监控的SQL语句之后,查看执行计划视图
SELECT * FROM pg_show_plans;

执行计划展示(这里会看到所有正在运行SQL的执行计划)

Name  |Value                                                                |
------+---------------------------------------------------------------------+
pid   |15327                                                                |
level |0                                                                    |
userid|10                                                                   |
dbid  |13761                                                                |
plan  |Function Scan on pg_show_plans  (cost=0.00..10.00 rows=1000 width=56)|

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值