PostgreSQL 修改追踪SQL语句的字节长度

前言

使用SQL Server时有 SQL server profiler 工具可以监视SQL执行过程和调试存储过程,在使用PostgreSQL时也首先想看下是否有类似的工具或者SQL,在查阅相关资料后,可以利用 pg_stat_statements 模块达成目的
但在追踪PGSQL的sql语句执行情况时,当sql达到一定长度后 能看到的sql语句会被截取

过程

获取SQL执行情况的语句

SELECT
procpid,
START,
now() - START AS lap,
current_query
FROM
(
SELECT
backendid,
pg_stat_get_backend_pid (S.backendid) AS procpid,
pg_stat_get_backend_activity_start (S.backendid) AS START,
pg_stat_get_backend_activity (S.backendid) AS current_query
FROM
(
SELECT
pg_stat_get_backend_idset () AS backendid
) AS S
) AS S
WHERE
current_query <> '<IDLE>'
ORDER BY
lap DESC;

pg_stat_get_backend_activity() 这个数据库函数可以拿到SQL,但是当SQL达到一定字数后得到的字符是截断后的,也就是说这个函数返回的字符长度有限制。这个限制是存储在pgsql的安装目录配置文件下的,以windows系统为例:
配置文件名为 postgresql.conf

只需要修改该文件下的 track_activity_query_size 对应的值即可,我这里改为了1MB

修改配置后,重启pgsql 的服务,即可应用新的配置

引用:
https://blog.csdn.net/nasen512/article/details/125769140
https://blog.csdn.net/sunny_day_day/article/details/118199980#2_pg_stat_statements_107

posted @   呱呱蛙呱呱呱  阅读(303)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
鸡你太美~Baby~Baby~
点击右上角即可分享
微信分享提示