Postgres DB Size 명령어
모든 데이터베이스의 크기를 찾는 명령어는 무엇입니까?
다음 명령을 사용하여 특정 데이터베이스의 크기를 확인할 수 있습니다.
select pg_database_size('databaseName');
다음 psql meta 명령을 입력하여 지정된 데이터베이스에 대한 상세(크기 포함)를 가져올 수 있습니다.
\l+ <database_name>
접속할 수 있는 모든 데이터베이스의 사이즈를 취득하려면 , 다음의 순서에 따릅니다.
\l+
"pg_database" 시스템 테이블에서 연결할 수 있는 모든 데이터베이스의 이름을 얻을 수 있습니다.아래와 같이 이름에만 기능을 적용하면 됩니다.
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() 함수를 절단할 수 있습니다.
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
@Hendy Irawan의 답변을 바탕으로 합니다.
데이터베이스 크기 표시:
\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.
예, 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 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;
$$
메모: 사용자가 연결할 수 없는 데이터베이스는 무한 크기처럼 정렬됩니다.
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
이 페이지에는 가장 큰 관계와 가장 큰 테이블의 크기를 찾기 위한 스니펫도 있습니다.
pgAdmin을 시작하여 서버에 연결하고 데이터베이스 이름을 클릭한 후 통계 탭을 선택합니다.목록 맨 아래에 데이터베이스 크기가 표시됩니다.
그런 다음 다른 데이터베이스를 클릭하면 통계 탭에 남아 있으므로 많은 데이터베이스 크기를 쉽게 볼 수 있습니다.테이블 목록을 열면 모든 테이블과 테이블 크기가 표시됩니다.
아래 쿼리를 사용하여 Postgr의 모든 데이터베이스 크기를 찾을 수 있습니다.SQL.
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;
du -k /var/lib/postgresql/ |sort -n |tail
언급URL : https://stackoverflow.com/questions/18907047/postgres-db-size-command
'programing' 카테고리의 다른 글
| iOS 6에서 지도 앱을 프로그래밍 방식으로 엽니다. (0) | 2023.04.11 |
|---|---|
| Linux: 특정 폴더 및 컨텐츠에 대해 단일 해시를 계산합니까? (0) | 2023.04.11 |
| 특정 문자열을 클립보드에 복사하기 위한 Excel VBA 코드 (0) | 2023.04.11 |
| Postgres의 기본 키 시퀀스가 동기화되지 않을 때 어떻게 재설정합니까? (0) | 2023.04.11 |
| 시뮬레이터 오류 FBSSystemServiceDomain 코드 4 (0) | 2023.04.11 |