更新时间:2026-07-28 GMT+08:00
如何查询活跃元组、脏元组、脏元组比例?
答:查询方法如下:
--查询排名前10的活跃元组、脏元组以及脏元组比例。
gaussdb=# SELECT schemaname||'.'||relname AS table_name,pg_size_pretty(pg_relation_size(schemaname||'.'||relname)) AS table_size,n_dead_tup,n_live_tup,round(n_dead_tup * 100 / (n_live_tup + n_dead_tup),2) AS dead_tup_ratio FROM pg_stat_all_tables WHERE n_dead_tup >= 1000 ORDER BY dead_tup_ratio DESC LIMIT 10;
table_name | table_size | n_dead_tup | n_live_tup | dead_tup_ratio
------------------------------------------+------------+------------+------------+----------------
pg_catalog.pg_statistic | 1136 kB | 1425 | 647 | 68.77
snapshot.snap_global_stat_all_indexes | 8072 kB | 5559 | 16596 | 25.09
snapshot.snap_summary_stat_all_indexes | 7672 kB | 5466 | 16596 | 24.78
snapshot.snap_class_vital_info | 3832 kB | 3171 | 11094 | 22.23
snapshot.snap_global_file_iostat | 11 MB | 11333 | 46687 | 19.53
snapshot.snap_summary_file_iostat | 10 MB | 11325 | 46687 | 19.52
snapshot.snap_summary_statement | 13 MB | 3832 | 16131 | 19.20
snapshot.snap_summary_statio_all_indexes | 8128 kB | 4360 | 19952 | 17.93
snapshot.snap_global_statio_all_indexes | 8456 kB | 4275 | 19952 | 17.65
snapshot.snap_global_stat_all_tables | 8216 kB | 3038 | 16409 | 15.62
(10 rows)
脏元组可作为判断表膨胀程度的指标,高比例的占比可能会导致表的膨胀,需要及时回收空间,避免影响数据库的性能。具体请参见《参考》中“SQL参考 > SQL语法 > V > VACUUM”章节。
父主题: 其他