나의 잡다한 노트 및 메모
PostgreSQL 관리자(DBA)가 자주 쓰는 주요 테이블/뷰 본문
1. 데이터베이스/스키마/오브젝트 정보
- pg_database
: 클러스터에 존재하는 모든 데이터베이스 목록- 어떤 DB가 있는지, size, encoding 확인
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database; - pg_namespace
: 스키마(namespace) 목록- 스키마별 권한 관리할 때 확인
- pg_class
: 테이블, 인덱스, 시퀀스 등 relation 객체 정보- 튜플 개수, relkind(’r’=table, ’i’=index 등
SELECT relname, relkind, reltuples FROM pg_class WHERE relkind='r'; - pg_attribute
: 테이블 컬럼(열) 정보
2. 사용자 / 권한
- pg_roles
: PostgreSQL의 사용자와 역할(Role) 정보SELECT rolname, rolsuper, rolcreaterole, rolcreatedb FROM pg_roles; - pg_authid
: 인증 관련 정보 (superuser만 조회 가능)
3. 트랜잭션/진행 상태 모니터링
- pg_stat_activity
: 현재 실행 중인 쿼리, 세션 상태SELECT pid, usename, state, query FROM pg_stat_activity; - pg_locks
: 현재 획득한 lock 목록 (Deadlock 트러블슈팅에 필수) - pg_stat_replication
: Streaming Replication 상태 (복제 슬롯, 동기화 상태 등)
4. 성능 / 통계 뷰
- pg_stat_user_tables
: 사용자 테이블별 통계 (seq scan 횟수, index scan 횟수, dead tuple 등)SELECT relname, seq_scan, idx_scan, n_dead_tup FROM pg_stat_user_tables; - pg_stat_all_indexes
: 인덱스 사용 통계 - pg_statio_user_tables
: 테이블 I/O 통계 (heap fetch, read, hit 등) - pg_statio_user_indexes
: 인덱스 I/O 통계
5. 스토리지 / Vacuum / Freeze 관리
- pg_class + pg_stat_user_tables 조합
: dead tuple 확인 - pg_stat_all_tables
: Vacuum, Analyze 실행 통계- last_vacuum, last_autovacuum, last_analyze 확인 가능
- pg_stat_progress_vacuum
: 현재 진행 중인 vacuum 작업의 상세 상태
6. 확장 / 관리용 뷰
- pg_extension
: 설치된 확장 목록 (예: plpgsql, uuid-ossp, postgis) - pg_settings
: 현재 설정된 GUC 파라미터 (postgresql.conf) 값 확인SELECT name, setting, unit, context FROM pg_settings WHERE name LIKE 'autovacuum%';
'DB > PostgreSQL' 카테고리의 다른 글
| Postgrest 란 무엇인가? 장단점과 특징 (0) | 2025.11.12 |
|---|---|
| DBA가 알면 좋은 쿼리 ( SLOT ) (0) | 2025.09.03 |
| PostgreSQL Vacuum (3) | 2025.08.22 |
| PostgreSQL tablespace (0) | 2025.08.22 |
| PostgreSQL Subscription (0) | 2025.08.20 |