我正在使用SELECT current_query FROM pg_stat_activity;查看当前正在执行的查询,但是我注意到查询被截断了。是否有任何变通方法或其他方法可以查看当前正在执行的查询?
SELECT current_query FROM pg_stat_activity;
cyvaqqii1#
ALTER SYSTEM SET track_activity_query_size = 16384;
您仍需要重新启动服务才能使其生效
nxowjjhe2#
PostgreSQL 8.4添加了参数“track_activity_query_size“。该值仍然会被截断,但您可以控制长度。
track_activity_query_size
ccrfmcuu3#
极端情况下的一种替代方法是使用gdb调试器附加到进程并打印出查询。参见http://darthanthony.wordpress.com/2012/10/11/viewing-running-postgres-queries-and-what-if-they-are-too-long/
gdb [path_to_postgres] [pid] printf "%s\n", debug_query_string
o2gm4chl4#
从PostgreSQL 13开始的最大值为track_activity_query_sizeis increased to 1MB。如果您使用docker,您可以像这样配置您的docker-compose文件:
# ... services: postgres: container_name: postgres image: postgis/postgis:13-3.1 command: - "postgres" - "-c" - "track_activity_query_size=1048576" # ...
如果不使用docker,则可以将设置设置为/var/lib/postgresql/data/postgresql.conf。请确保重新启动数据库以应用该设置。可以使用以下查询来检查是否应用了该设置:
/var/lib/postgresql/data/postgresql.conf
SHOW track_activity_query_size;
crcmnpdw5#
使用以下命令获取postgres.conf文件路径
postgres.conf
psql -U postgres -c 'SHOW config_file'
或者您使用的是root用户,则只需
SHOW config_file;
它将输出如下内容
/var/lib/pgsql/data/postgresql.conf # Output of above command
然后使用vim编辑文件并更改下面的参数,比如说16kb
track_activity_query_size=16384
然后重新启动Postgres服务器之后,如果您运行SELECT current_query FROM pg_stat_activity;,它将向您显示更多查询,但它将截断到16KB,您可以增加您想要的大小。
mftmpeh86#
你可以只在postgresql(log_statement)中启用语句日志记录,然后检查日志。
1qczuiv07#
如果您运行Google Cloud SQL示例,您可以在Edit Instance --> Flags部分配置track_activity_query_size。我个人将其设置为32786。
Edit Instance --> Flags
32786
7条答案
按热度按时间cyvaqqii1#
您仍需要重新启动服务才能使其生效
nxowjjhe2#
PostgreSQL 8.4添加了参数“
track_activity_query_size
“。该值仍然会被截断,但您可以控制长度。ccrfmcuu3#
极端情况下的一种替代方法是使用gdb调试器附加到进程并打印出查询。
参见http://darthanthony.wordpress.com/2012/10/11/viewing-running-postgres-queries-and-what-if-they-are-too-long/
o2gm4chl4#
从PostgreSQL 13开始的最大值为
track_activity_query_size
is increased to 1MB。如果您使用docker,您可以像这样配置您的docker-compose文件:
如果不使用docker,则可以将设置设置为
/var/lib/postgresql/data/postgresql.conf
。请确保重新启动数据库以应用该设置。可以使用以下查询来检查是否应用了该设置:crcmnpdw5#
使用以下命令获取
postgres.conf
文件路径或者您使用的是root用户,则只需
它将输出如下内容
然后使用vim编辑文件并更改下面的参数,比如说16kb
然后重新启动Postgres服务器
之后,如果您运行
SELECT current_query FROM pg_stat_activity;
,它将向您显示更多查询,但它将截断到16KB,您可以增加您想要的大小。mftmpeh86#
你可以只在postgresql(log_statement)中启用语句日志记录,然后检查日志。
1qczuiv07#
如果您运行Google Cloud SQL示例,您可以在
Edit Instance --> Flags
部分配置track_activity_query_size
。我个人将其设置为
32786
。