select count(*) from pg_stat_activity where query like 'autovacuum:%';
以获知有多少自动真空同时运行。 您可能需要创建一个安全函数,如下所示:
CREATE OR REPLACE FUNCTION public.pg_autovacuum_count() RETURNS bigint
AS 'select count(*) from pg_stat_activity where query like ''autovacuum:%'';'
LANGUAGE SQL
STABLE
SECURITY DEFINER;
4条答案
按热度按时间jv4diomz1#
PostgreSQL 9.3
确定自动真空是否正在运行
这是UNIX上的Postgres 9.3所特有的。对于Windows,请参阅此question。
查询Postgres系统表
Grep系统进程状态
Grep日志
如果要了解有关 autovacuum 活动的详细信息,请将
log_min_messages
设置为DEBUG1..DEBUG5
。SQL命令VACUUM VERBOSE
将在日志级别INFO
输出信息。关于Autovacuum守护程序,Posgres文件指出:
在默认配置中,启用了自动清除功能,并相应地设置了相关的配置参数。
另请参阅:
ktca8awb2#
我正在使用:
以获知有多少自动真空同时运行。
您可能需要创建一个安全函数,如下所示:
从对方付费电话打过来。
在早期的Postgres中,"query"是"current_query",所以根据实际情况更改它。
gopyfrb33#
你也可以运行pg_activity来查看数据库上当前正在运行的查询,我通常会让终端在大部分时间里都打开这个程序,因为它非常有用。
qyyhg6bp4#
将log_autovacuum_min_duration设置为您所需的时间长度,并记录超过该时间长度的自动真空执行。