PostgreSQL 11 preview - pg_stat_statements 增强,支持执行计划翻转记录

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

标签

PostgreSQL , pg_stat_statements , 执行计划 , 翻转 , pg_stat_plans


背景

pg_stat_statements是PG的一个用于收集SQL统计信息的插件,可以帮助我们分析TOP SQL。

《PostgreSQL 如何查找TOP SQL (例如IO消耗最高的SQL)》

另一方面,我们可能也想知道SQL曾经执行时是否出现过较差的执行计划,使用较差的执行计划执行了多少次等信息。

通过pg_stat_plans这个插件可以记录SQL的执行计划变化,不同执行计划下SQL的平均执行时间,执行次数等。

例如,下面是某个SQL的统计信息,一共使用了两种PLAN,调用次数和平均执行时间都被记录了下来。

plan_ids            | {2758236521,1252991393}  
calls_histogram     | {1,5}  
avg_time_histogram  | {21.224,0.016}  

执行计划如下

postgres=# select planid,query,query_valid,pg_stat_plans_explain(planid, userid, dbid) from pg_stat_plans where dbid=12788 and query ~ 'test';    
-[ RECORD 1 ]---------+-------------------------------------------------------------------  
planid                | 2758236521    
query                 | select * from test where id=1;    
query_valid           | f    
pg_stat_plans_explain | ***** Existing entry's planid (2758236521) and explain of original SQL query string planid (1252991393) differ *****    
                      | Index Only Scan using idx_test on test  (cost=0.00..2.30 rows=1 width=4)    
                      |   Index Cond: (id = 1)    
-[ RECORD 5 ]---------+-----------------------------------------------------------------------------------------------------  
planid                | 1252991393    
query                 | select * from test where id=1;    
query_valid           | t    
pg_stat_plans_explain | Index Only Scan using idx_test on test  (cost=0.00..2.30 rows=1 width=4)    
                      |   Index Cond: (id = 1)    

PostgreSQL 11,将要把这个功能整合到pg_stat_statements中。patch 如下。

https://www.postgresql.org/message-id/flat/9e43fd8f-4d35-4b9d-545c-f9011cd4aa5d@uni-muenster.de#9e43fd8f-4d35-4b9d-545c-f9011cd4aa5d@uni-muenster.de

https://commitfest.postgresql.org/17/1470/

参考

https://www.postgresql.org/message-id/flat/9e43fd8f-4d35-4b9d-545c-f9011cd4aa5d@uni-muenster.de#9e43fd8f-4d35-4b9d-545c-f9011cd4aa5d@uni-muenster.de

https://commitfest.postgresql.org/17/1470/

custom extension pg_stat_plan

https://github.com/2ndQuadrant/pg_stat_plans

custom extension pg_store_plans

https://github.com/ossc-db/pg_store_plans

《执行计划维度统计\判断执行计划翻转\统计每种执行计划的统计信息 use pg_stat_plans in PostgreSQL 9.0, 9.1 and 9.2》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
文字识别 容器
文字识别OCR常见问题之本地部署如何解决
文字识别OCR(Optical Character Recognition)技术能够将图片或者扫描件中的文字转换为电子文本。以下是阿里云OCR技术使用中的一些常见问题以及相应的解答。
518 3
|
7月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
594 12
|
11月前
|
存储 人工智能 关系型数据库
4年10亿美金,Neon用Serverless PG证明:AI需要的不是“大”,而是“隐形”
AnalyticDB PostgreSQL 版基于Neon架构隆重推出满足 AI 时代应用开发需求的Serverless版本,并且在这之上搭载了结构化分析、向量检索、BM25全文检索和图检索,通过一套引擎满足 AI 应用丰富的数据诉求,支持MCP和OpenAI协议,为企业全面拥抱 AI 配备了数据存储、分析和应用的 “关键” 能力,帮助企业火箭式启动跑赢时代。
|
9月前
|
机器学习/深度学习 传感器 运维
设备总是坏才修?你落伍啦,预测性运维才是王炸!
设备总是坏才修?你落伍啦,预测性运维才是王炸!
419 5
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS
|
存储 分布式计算 物联网
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。
981 58
|
12月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
375 12
|
缓存 边缘计算 安全
全面进化:边缘安全加速平台的演进(暨新产品ESA发布会)
全面进化:边缘安全加速平台(ESA)发布会。ESA融合了全球3200个节点、TP级防护、四层和七层安全加速,提供一站式的CDN与安全服务。产品具备高性能双向传输、智能调度、免费SSL证书、DNS管理及边缘计算能力,支持电商、游戏等多场景。发布会还介绍了行业标准及价格体系,涵盖从个人开发者到大型企业的多种套餐,助力用户享受高效、稳定的边缘加速与安全防护体验。
719 3
IntelliJ IDEA 如何在控制台过滤信息
IntelliJ IDEA 如何在控制台过滤信息
1288 0
|
Android开发 iOS开发
Flutter中获取监听屏幕方向、锁定屏幕方向
Flutter中获取监听屏幕方向、锁定屏幕方向
758 2