답변:
"pg_datbase"시스템 테이블에서 연결할 수있는 모든 데이터베이스의 이름을 얻을 수 있습니다. 아래와 같이 이름에 기능을 적용하십시오.
select t1.datname AS db_name,
pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;
사람 대신 기계가 출력을 사용하도록하려면 pg_size_pretty () 함수를자를 수 있습니다.
pg_database_size()
포함 합니다
\l+
. 그러나 출력 형식은 읽기 쉽습니다 (열이 적음). 쓰기 가능성과 가독성 간의 타협…
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
대답을 바탕으로 여기 에 의해 @Hendy 이르 완
데이터베이스 크기 표시 :
\l+
예 :
=> \l+
berbatik_prd_commerce | berbatik_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 19 MB | pg_default |
berbatik_stg_commerce | berbatik_stg | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8633 kB | pg_default |
bursasajadah_prd | bursasajadah_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 1122 MB | pg_default |
테이블 크기 표시 :
\d+
예 :
=> \d+
public | tuneeca_prd | table | tomcat | 8192 bytes |
public | tuneeca_stg | table | tomcat | 1464 kB |
에서 작동합니다 psql
.
\d+ *
일했다, 평범한 \d+
반환Did not find any relations.
\c dbname
한 다음 ( ) 수행하십시오 \d+
.
예, Postgres에서 데이터베이스 크기를 찾는 명령이 있습니다. 다음과 같습니다.
SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;
SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
SELECT pg_database.datname AS "DB Name", pg_size_pretty(pg_database_size(pg_database.datname)) AS "Size" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
.
SELECT pg_size_pretty(pg_database_size('name of database'));
특정 데이터베이스의 전체 크기를 제공하지만 서버 내에서 모든 데이터베이스를 수행 할 수는 없다고 생각합니다.
그러나 당신은 이것을 할 수 있습니다 ...
DO
$$
DECLARE
r RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));
RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;
END LOOP;
END;
$$
pg_database
끔찍한 pl / pgsql 대신 단일 쿼리가 될 수 없습니까?
로부터 PostgreSQL의 위키 .
참고 : 사용자가 연결할 수없는 데이터베이스는 마치 크기가 무한한 것처럼 정렬됩니다.
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END AS Size
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END DESC -- nulls first
LIMIT 20
이 페이지에는 가장 큰 관계의 크기와 가장 큰 테이블을 찾는 스 니펫도 있습니다.
아래 쿼리를 사용하여 PostgreSQL의 모든 데이터베이스 크기를 찾을 수 있습니다.
SELECT
datname AS DatabaseName
,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
,CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
ELSE 'No Access For You'
END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY
CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_database_size(datname)
ELSE NULL
END DESC;
pgAdmin을 시작하고 서버에 연결 한 후 데이터베이스 이름을 클릭하고 통계 탭을 선택하십시오. 목록 맨 아래에 데이터베이스 크기가 표시됩니다.
그런 다음 다른 데이터베이스를 클릭하면 통계 탭에 남아 있으므로 많은 노력 없이도 많은 데이터베이스 크기를 쉽게 볼 수 있습니다. 테이블 목록을 열면 모든 테이블과 크기가 표시됩니다.
Databases
트리 노드 (DB 연결에 연결된)를 클릭하고 Statistics
탭을 선택하면 모든 데이터베이스와 크기 (세 번째 열)에 대한 요약이 표시됩니다.