728x90
반응형
postgresql block size 확인 기본은 8192 bytes다
SELECT current_setting('block_size');
PostgreSQL에서 (테이블, 스키마, 테이블 스페이스) 등의 DB 용량 조회하기 위한 SQL문이다.
[데이터베이스 총 용량 확인]
select datname, pg_size_pretty(pg_database_size(datname)) from pg_database;
[테이블 스페이스 총 용량 확인]
select spcname, pg_size_pretty(pg_tablespace_size(spcname)) from pg_tablespace;
[DB의 전체 스키마 조회]
select nspname from pg_catalog.pg_namespace pn;
[DB의 전체 테이블 조회]
select tablename from pg_tables;
[스키마 용량 조회]
--스키마 사이즈 반환하기 위한 세팅
CREATE OR REPLACE FUNCTION pg_schema_size(text) returns bigint AS $$
select sum(pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(tablename)))::bigint from pg_tables where schemaname = $1
$$ language sql;
-- 특정 스키마 사이즈 조회
select pg_size_pretty(pg_schema_size('스키마 명'));
--전체 스키마 크기 출력 [스키마 명 / 디스크 공간 / 할당된 DB 사이즈 / 사용 percent]
SELECT schema_name,
pg_size_pretty(sum(table_size)::bigint) as "disk space",
pg_size_pretty(pg_database_size(current_database())) as "DB_size",
(sum(table_size) / pg_database_size(current_database())) * 100
as "percent (%)"
FROM (
SELECT pg_catalog.pg_namespace.nspname as schema_name,
pg_relation_size(pg_catalog.pg_class.oid) as table_size
FROM pg_catalog.pg_class
JOIN pg_catalog.pg_namespace
ON relnamespace = pg_catalog.pg_namespace.oid
) t
GROUP BY schema_name
ORDER BY schema_name;
[특정 스키마의 테이블 별 사이즈 확인]
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname IN ('스키마 명')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_relation_size(C.oid) desc;
728x90
반응형
'데이터베이스 > Postgresql' 카테고리의 다른 글
베큠 사용 postgresql 쓰레기 데이터 정리 (0) | 2021.07.28 |
---|---|
[PostgreSQL] da# erd 생성 (0) | 2021.07.27 |
[PostgreSQL] 원격접속시 오류 발생할때 처리 (0) | 2021.07.26 |
[PostgresSQL] postgresql 백업 및 복원 (0) | 2021.07.21 |
[PostgresSQL] 테이블의 컬럼정보확인 (0) | 2021.07.17 |
댓글