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