Skip to content
docker exec -it postgres-98a bash
su postgres
$ psql -U sonar -d sonardb -W #sonarpwd
sonar sonarpwd

psql -U sonar95a -d sonardb_95a -W #sonar95apwd
sql
-- 查询整个数据库的磁盘占用
SELECT pg_size_pretty(pg_database_size('sonardb')) AS size;

-- 查询整个数据库实例的总磁盘占用
SELECT datname AS database_name, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database;

-- 查询当前数据库中所有表的大小
SELECT
    relname AS table_name,
    pg_size_pretty(pg_total_relation_size(relid)) AS total_size,
    pg_size_pretty(pg_relation_size(relid)) AS table_size,
    pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) AS index_size
FROM
    pg_catalog.pg_statio_user_tables
ORDER BY
    pg_total_relation_size(relid) DESC limit 10;


-- 清理表后,运行 VACUUM FULL 来回收磁盘空间:
VACUUM FULL project_measures;
REINDEX TABLE project_measures;

VACUUM FULL issues;
REINDEX TABLE issues;

VACUUM FULL issue_changes;
REINDEX TABLE issue_changes;

VACUUM FULL components;
REINDEX TABLE components;

VACUUM FULL file_sources;
REINDEX TABLE file_sources;

VACUUM FULL live_measures;
REINDEX TABLE live_measures;


-- 重建索引
REINDEX TABLE live_measures;
REINDEX TABLE file_sources;

数据库需保证预留磁盘空间

sonardb=# VACUUM FULL live_measures;
ERROR:  could not extend file "base/16384/2478678.1": No space left on device
HINT:  Check free disk space.