E
Size: a a a
E
СЯ
E
AM
AM
E
AM
AM
E
AM
AM
E
ИС
СГ
SELECT p.pid,
now() - a.xact_start AS duration,
COALESCE((a.wait_event_type || '.'::text) || a.wait_event, 'f'::text) AS waiting,
CASE
WHEN a.query ~ '^autovacuum.*to prevent wraparound'::text THEN 'wraparound'::text
WHEN a.query ~ '^vacuum'::text THEN 'user'::text
ELSE 'regular'::text
END AS mode,
p.datname AS database,
p.relid::regclass AS "table",
p.phase,
pg_size_pretty(p.heap_blks_total * current_setting('block_size'::text)::integer) AS table_size,
pg_size_pretty(pg_total_relation_size(p.relid::regclass)) AS total_size,
pg_size_pretty(p.heap_blks_scanned * current_setting('block_size'::text)::integer) AS scanned,
pg_size_pretty(p.heap_blks_vacuumed * current_setting('block_size'::text)::integer) AS vacuumed,
round(100.0 * p.heap_blks_scanned::numeric / p.heap_blks_total::numeric, 1) AS scanned_pct,
round(100.0 * p.heap_blks_vacuumed::numeric / p.heap_blks_total::numeric, 1) AS vacuumed_pct,
p.index_vacuum_count,
round(100.0 * p.num_dead_tuples::numeric / p.max_dead_tuples::numeric, 1) AS dead_pct
FROM pg_stat_progress_vacuum p
RIGHT JOIN pg_stat_activity a ON a.pid = p.pid
WHERE (a.query ~* '^autovacuum:'::text OR a.query ~* '^vacuum'::text) AND a.pid <> pg_backend_pid()
ORDER BY (now() - a.xact_start) DESC
;ИС
SELECT p.pid,
now() - a.xact_start AS duration,
COALESCE((a.wait_event_type || '.'::text) || a.wait_event, 'f'::text) AS waiting,
CASE
WHEN a.query ~ '^autovacuum.*to prevent wraparound'::text THEN 'wraparound'::text
WHEN a.query ~ '^vacuum'::text THEN 'user'::text
ELSE 'regular'::text
END AS mode,
p.datname AS database,
p.relid::regclass AS "table",
p.phase,
pg_size_pretty(p.heap_blks_total * current_setting('block_size'::text)::integer) AS table_size,
pg_size_pretty(pg_total_relation_size(p.relid::regclass)) AS total_size,
pg_size_pretty(p.heap_blks_scanned * current_setting('block_size'::text)::integer) AS scanned,
pg_size_pretty(p.heap_blks_vacuumed * current_setting('block_size'::text)::integer) AS vacuumed,
round(100.0 * p.heap_blks_scanned::numeric / p.heap_blks_total::numeric, 1) AS scanned_pct,
round(100.0 * p.heap_blks_vacuumed::numeric / p.heap_blks_total::numeric, 1) AS vacuumed_pct,
p.index_vacuum_count,
round(100.0 * p.num_dead_tuples::numeric / p.max_dead_tuples::numeric, 1) AS dead_pct
FROM pg_stat_progress_vacuum p
RIGHT JOIN pg_stat_activity a ON a.pid = p.pid
WHERE (a.query ~* '^autovacuum:'::text OR a.query ~* '^vacuum'::text) AND a.pid <> pg_backend_pid()
ORDER BY (now() - a.xact_start) DESC
;СГ
ИС
SELECT p.pid,
now() - a.xact_start AS duration,
COALESCE((a.wait_event_type || '.'::text) || a.wait_event, 'f'::text) AS waiting,
CASE
WHEN a.query ~ '^autovacuum.*to prevent wraparound'::text THEN 'wraparound'::text
WHEN a.query ~ '^vacuum'::text THEN 'user'::text
ELSE 'regular'::text
END AS mode,
p.datname AS database,
p.relid::regclass AS "table",
p.phase,
pg_size_pretty(p.heap_blks_total * current_setting('block_size'::text)::integer) AS table_size,
pg_size_pretty(pg_total_relation_size(p.relid::regclass)) AS total_size,
pg_size_pretty(p.heap_blks_scanned * current_setting('block_size'::text)::integer) AS scanned,
pg_size_pretty(p.heap_blks_vacuumed * current_setting('block_size'::text)::integer) AS vacuumed,
round(100.0 * p.heap_blks_scanned::numeric / p.heap_blks_total::numeric, 1) AS scanned_pct,
round(100.0 * p.heap_blks_vacuumed::numeric / p.heap_blks_total::numeric, 1) AS vacuumed_pct,
p.index_vacuum_count,
round(100.0 * p.num_dead_tuples::numeric / p.max_dead_tuples::numeric, 1) AS dead_pct
FROM pg_stat_progress_vacuum p
RIGHT JOIN pg_stat_activity a ON a.pid = p.pid
WHERE (a.query ~* '^autovacuum:'::text OR a.query ~* '^vacuum'::text) AND a.pid <> pg_backend_pid()
ORDER BY (now() - a.xact_start) DESC
;СГ
ИС