PostgreSQL Search Path 쉽게 이해하고 실습해보기

 

 

 

📌 search_path란?

search_path는 PostgreSQL이 객체 이름을 찾을 때, 어떤 순서로 스키마를 검색할지 정해주는 목록입니다.
쉽게 말해, 테이블 이름을 쿼리에서 쓸 때 sales.users처럼 스키마 이름을 생략해도 되게 해주는 설정입니다.

show search_path;
   search_path
-----------------
 "$user", public
(1 row)
먼저 현재 로그인한 사용자 이름과 같은 스키마를 찾고, 없으면 public 스키마에서 찾겠다는 의미

 

 

 

📝 search_path 실습을 통한 이해 

 

1. 두 개의 스키마 생성

CREATE SCHEMA sales;
CREATE SCHEMA hr;

 

2. 같은 이름의 테이블 생성

 

CREATE TABLE sales.employees (id INT, name TEXT);
CREATE TABLE hr.employees (id INT, name TEXT);

 

3. 각 테이블에 다른 데이터 넣기

INSERT INTO sales.employees (name) VALUES
('Alice (Sales)'), ('Bob (Sales)');

INSERT INTO hr.employees (name) VALUES
('Charlie (HR)'), ('Diana (HR)');

 

4. search_path 변경에 따른 조회 결과 비교

 

-- 🔍 sales 스키마를 먼저 찾게 설정
SET search_path TO sales, hr;

SELECT * FROM employees;
 id |     name
----+---------------
    | Alice (Sales)
    | Bob (Sales)
(2 rows)
즉, search_path가 먼저 보는 스키마에서 employees 테이블을 찾는 것

 

⚠️ 주의할 점

  • search_path를 잘못 설정하면 의도하지 않은 테이블이 사용될 수 있습니다.
  • 특히, 같은 이름의 테이블이 여러 스키마에 있을 때는 혼란을 줄 수 있습니다.
  • 명시적으로 스키마 이름을 붙여 쓰는 게 안전함. 

 

🛠️ 로그인 시 자동 설정

-- PostgreSQL에서는 ROLE = USER 같은 개념 사용
ALTER ROLE <계정명> SET search_path TO hr, public;
매 로그인 시 자동으로 search_path 가 설정, 보통 이렇게 설정하고 사용함
일일이 SET 명령어 사용해서 할 필요가 없음

 

 

 

 

 


🙌 댓글, 공감, 공유는 큰 힘이 됩니다! 😄


Dictionary View 리스트

 

 

테이블 이름  / 설명
pg_aggregate 사용자 정의 및 내장 집계 함수에 대한 정보
pg_am 접근 방법(access methods), 예: btree, hash 등
pg_amop 접근 방법 연산자(operator)에 대한 정보
pg_amproc 접근 방법에서 사용하는 지원 함수들
pg_attrdef 컬럼 기본값 (DEFAULT) 저장
pg_attribute 테이블/뷰의 각 컬럼 정보
pg_auth_members 역할(role) 간의 멤버십 관계
pg_authid 역할(role)에 대한 기본 정보 (암호 포함, superuser 여부 등)
pg_cast 형변환 함수 정보 (예: int → text)
pg_class 테이블, 인덱스, 시퀀스 등 객체 정보
pg_collation 문자 정렬 방식 정보
pg_constraint 제약조건 정보 (PK, FK, CHECK 등)
pg_conversion 문자셋 간 변환 정보
pg_database 데이터베이스 목록
pg_db_role_setting 특정 DB/Role 조합에 대한 GUC 설정
pg_default_acl 기본 접근 권한 (DEFAULT PRIVILEGES)
pg_depend 오브젝트 간 의존 관계
pg_description 객체에 부여된 설명(comment)
pg_enum 열거형(enum) 타입 값
pg_event_trigger 이벤트 트리거 정보
pg_extension 확장(extension) 정보
pg_foreign_data_wrapper 외부 데이터 래퍼 (FDW) 정의
pg_foreign_server 외부 서버 정의
pg_foreign_table 외부 테이블 정의
pg_index 인덱스 정보 (pg_class와 연결됨)
pg_inherits 테이블 상속 관계 정보
pg_init_privs 초기 권한 상태 저장용 (ALTER 권한 추적용)
pg_language 함수 작성 언어 정보 (sql, plpgsql 등)
pg_largeobject 대형 객체 데이터 저장
pg_largeobject_metadata 대형 객체 메타데이터 (소유자, 권한 등)
pg_namespace 스키마 정보
pg_opclass 연산자 클래스 정보
pg_operator 연산자 정의
pg_opfamily 연산자 패밀리 정의
pg_parameter_acl 파라미터 접근 권한
pg_partitioned_table 파티셔닝된 테이블 정보
pg_policy Row-Level Security 정책 정보
pg_proc 함수/프로시저 정의
pg_publication logical replication 용 publication 정의
pg_publication_namespace publication과 스키마 연결 정보
pg_publication_rel publication과 테이블 연결 정보
pg_range 범위 타입 정보
pg_replication_origin 논리 복제의 origin 정보
pg_rewrite 뷰나 규칙(rule) 시스템
pg_seclabel 보안 라벨
pg_sequence 시퀀스 객체 정보
pg_shdepend 공유 객체 의존성
pg_shdescription 공유 객체 설명
pg_shseclabel 공유 객체 보안 라벨
pg_statistic planner가 사용하는 통계 정보 (ANALYZE 결과)
pg_statistic_ext 확장 통계 정보 (다변량 등)
pg_statistic_ext_data 확장 통계의 실제 값
pg_subscription logical replication 구독 정보
pg_subscription_rel subscription에 포함된 테이블
pg_tablespace 테이블스페이스 정의
pg_transform 사용자 정의 타입의 transform
pg_trigger 트리거 정의
pg_ts_config 텍스트 검색 설정
pg_ts_config_map 텍스트 검색 설정 세부 맵핑
pg_ts_dict 텍스트 검색 사전
pg_ts_parser 텍스트 검색 파서
pg_ts_template 텍스트 검색 템플릿
pg_type 타입 정보 (기본 + 사용자 정의)
pg_user_mapping 사용자-서버 매핑 (FDW용)

 

 

🧠 1. 확장 및 구성 관련
pg_available_extensions 설치 가능한 확장 목록
pg_available_extension_versions 확장의 설치 가능한 버전 목록
pg_config PostgreSQL 빌드 및 설정 정보
pg_settings 현재 GUC 설정 파라미터 값 (SHOW ALL과 동일)
pg_file_settings postgresql.conf에서 읽은 설정 정보
pg_hba_file_rules pg_hba.conf에 정의된 인증 규칙
pg_ident_file_mappings pg_ident.conf의 유저 매핑

🧩 2. 역할, 사용자 관련
pg_user pg_roles와 동일, but 패스워드 없음
pg_roles 모든 역할(사용자/그룹 포함)
pg_group 그룹 역할 정보 (구버전 호환용)
pg_shadow 사용자 정보 + 암호 포함 (슈퍼유저만 접근)

📊 3. 통계 및 모니터링
▶️ 세션 및 활동
pg_stat_activity 현재 실행 중인 세션 정보
pg_prepared_statements 준비된 statement 목록
pg_prepared_xacts 준비된 트랜잭션 목록 (2PC용)
pg_replication_origin_status 논리 복제 origin 상태
pg_stat_replication 복제 상태
pg_stat_wal_receiver WAL 수신기 상태
pg_replication_slots replication slots 목록
pg_stat_replication_slots slots의 활동 상태
pg_stat_ssl SSL 연결 정보
pg_stat_gssapi GSSAPI 인증 정보
pg_stat_subscription 구독자 상태
pg_stat_subscription_stats 구독 통계

▶️ 성능 및 자원
pg_locks 현재 세션의 잠금 정보
pg_backend_memory_contexts backend 메모리 사용 상세
pg_shmem_allocations shared memory 사용 상태
pg_stat_wal WAL 쓰기 관련 통계
pg_stat_archiver WAL 아카이버 상태
pg_stat_bgwriter 백그라운드 writer 통계
pg_stat_checkpointer 체크포인트 정보
pg_stat_io IO 통계
pg_stat_recovery_prefetch 복구 중 prefetch 통계

🔄 4. 진행 중 작업 정보
pg_stat_progress_vacuum VACUUM 진행 정보
pg_stat_progress_analyze ANALYZE 진행 정보
pg_stat_progress_cluster CLUSTER 진행 정보
pg_stat_progress_copy COPY 진행 정보
pg_stat_progress_create_index 인덱스 생성 중 상태
pg_cursors 열린 커서 목록

📋 5. 객체 메타정보 뷰
pg_tables 사용자 테이블 목록
pg_views 사용자 뷰 목록
pg_indexes 인덱스 목록
pg_matviews materialized view 목록
pg_sequences 시퀀스 목록
pg_rules RULE 정보
pg_policies Row-Level Security 정책
pg_user_mappings FDW 사용자 매핑
pg_publication_tables publication에 포함된 테이블
pg_seclabels 보안 라벨 목록

📈 6. 통계 뷰 (Tables & Indexes)
▶️ 테이블, 인덱스 단위 통계
pg_stat_all_tables 모든 테이블의 통계
pg_stat_user_tables 사용자 테이블의 통계
pg_stat_sys_tables 시스템 테이블의 통계
pg_stat_xact_all_tables 트랜잭션당 테이블 통계
pg_stat_xact_user_tables 트랜잭션당 사용자 테이블 통계
pg_stat_xact_sys_tables 트랜잭션당 시스템 테이블 통계
pg_stat_all_indexes 모든 인덱스 통계
pg_stat_user_indexes 사용자 인덱스 통계
pg_stat_sys_indexes 시스템 인덱스 통계
pg_stat_user_functions 사용자 함수 사용 통계
pg_stat_xact_user_functions 트랜잭션 단위 함수 통계

▶️ I/O 통계
pg_statio_all_tables 테이블 I/O 통계
pg_statio_user_tables 사용자 테이블 I/O
pg_statio_sys_tables 시스템 테이블 I/O
pg_statio_all_indexes 인덱스 I/O
pg_statio_user_indexes 사용자 인덱스 I/O
pg_statio_sys_indexes 시스템 인덱스 I/O
pg_statio_all_sequences 시퀀스 I/O
pg_statio_user_sequences 사용자 시퀀스 I/O
pg_statio_sys_sequences 시스템 시퀀스 I/O

📚 7. 통계 정보 저장소 (ANALYZE)
pg_stats 컬럼 단위 통계 (ANALYZE 결과)
pg_stats_ext 확장 통계 정보
pg_stats_ext_exprs 확장 통계 표현식

🌍 8. 시간대 정보
pg_timezone_abbrevs 시간대 약어 목록
pg_timezone_names 시간대 전체 이름 목록

 

 

 

🙌 댓글, 공감, 공유는 큰 힘이 됩니다! 😄

 

 

 


FUNCTION을 이용하여 테이블 구조를 파악하고 샘플데이터 자동으로 삽입  

 

 

📝 테이블 자동 분석하여 샘플데이터 넣는 함수생성   

CREATE OR REPLACE FUNCTION generate_sample_data(p_table text, p_count int)
RETURNS void AS $$
DECLARE
    col_rec record;
    col_list text;
    val_list text;
    sql text;
    i int;
BEGIN
    -- Step 1: 컬럼 리스트 확인
    SELECT string_agg(quote_ident(column_name), ', ')
    INTO col_list
    FROM information_schema.columns
    WHERE table_name = p_table
      AND table_schema = 'public';

    IF col_list IS NULL THEN
        RAISE EXCEPTION '테이블 "%"의 컬럼 정보를 찾을 수 없습니다.', p_table;
    END IF;

    -- Step 2: 반복 삽입
    FOR i IN 1..p_count LOOP
        val_list := (
            SELECT string_agg(
                CASE 
                    WHEN data_type LIKE '%int%' THEN (trunc(random()*100))::text

                    WHEN data_type LIKE '%char%' OR data_type = 'text' THEN
                        quote_literal(
                            substr(
                                md5(random()::text),
                                1,
                                COALESCE(character_maximum_length, 10)
                            )
                        )

                    WHEN data_type = 'date' THEN
                        quote_literal(current_date - (random()*365)::int)

                    WHEN data_type = 'timestamp without time zone' THEN
                        quote_literal(now() - (random()*1000000)::int * interval '1 second')

                    ELSE 'NULL'
                END, ', '
            )
            FROM information_schema.columns
            WHERE table_name = p_table
              AND table_schema = 'public'
        );

        sql := format('INSERT INTO public.%I (%s) VALUES (%s);', p_table, col_list, val_list);

        EXECUTE sql;
    END LOOP;
END;
$$ LANGUAGE plpgsql;

 

 

💻 샘플데이터 넣기 

SELECT generate_sample_data('<테이블명>', 10);

 



🙌 댓글, 공감, 공유는 큰 힘이 됩니다! 😄


Postgresql Ciuts 기반 Sharding 구축해보기

OS환경 : Rocky Linux 8.10 (64bit) 3대
DB 환경 : PostgreSQL 17.4 3대
Sharding : Citus 12.x

 

📌 개요

실시간 데이터 처리를 위해 PostgreSQL 17 + Citus를 활용한 샤딩 기반 분산 데이터베이스 구조를 구축하고,
1억 건 성능 테스트까지 진행한 과정을 정리했습니다.

 

 

⚙️ pgpass설정(postgres 패스워드 변경 필요)

--사전에 postgreSQL postgres계정 패스워드 변경 필요
cd ~
vi .pgpass
192.168.67.113:5432:*:postgres:postgres12!
192.168.67.171:5432:*:postgres:postgres12!
192.168.67.244:5432:*:postgres:postgres12!

 

⚙️ Citus 17용 RPM 찾기(공식 레포 URL을 직접 확인)

👉 https://download.postgresql.org/pub/repos/yum/17/redhat/rhel-8-x86_64/

 

📦 Citus_17 RPM 다운로드 / 설치

-- citus 17 다운로드
cd ~
curl -O https://download.postgresql.org/pub/repos/yum/17/redhat/rhel-8-x86_64/citus_17-13.0.3-1PGDG.rhel8.x86_64.rpm

-- citus_17 설치
rpm -ivh citus_17-13.0.3-1PGDG.rhel8.x86_64.rpm

 

🛠️ postgresql.conf 설정

-- default parameter 생략
-- 아래 내용 추가
wal_level = logical
shared_preload_libraries = 'citus,$libdir/pg_stat_statements'
listen_addresses = '*'
max_replication_slots = 10
max_wal_senders = 10

 

🛠️ pg_hba.conf 설정

-- hba.conf 파일 수정
host    all             all             192.168.67.0/24         md5

 

 

🛠️ citus 설치

create database mydb;
\c mydb

CREATE EXTENSION citus;

 

⚙️ 워커등록(DB설치는 생략)

  • Coordinator: 192.168.67.171
  • Worker 1: 192.168.67.113
  • Worker 2: 192.168.67.244
 
-- Coordinator에서 워커 등록
-- Step 1: 자신을 Coordinator로 명시
SELECT citus_set_coordinator_host('192.168.67.171', 5432);

-- Step 2: 워커 노드 등록
SELECT citus_add_node('192.168.67.113', 5432);
SELECT citus_add_node('192.168.67.244', 5432);

-- Step 3: 워커 노드 삭제(잘못 등록 했을 경우)
SELECT citus_remove_node('192.168.67.244', 5432);

-- 현재 클러스터 노드 보기
SELECT * FROM citus_get_active_worker_nodes();

 


📋 테이블 스키마 및 분산 설정

-- 이벤트 테이블 생성
CREATE TABLE events (
  id BIGSERIAL,
  event_name TEXT,
  created_at TIMESTAMPTZ DEFAULT now(),
  PRIMARY KEY (id)
);

-- Citus 분산 테이블로 등록 (샤딩 키: id)
SELECT create_distributed_table('events', 'id');


--데이터 1억건 삽입
INSERT INTO events (event_name)
SELECT 'event_' || (random()*100000)::int
FROM generate_series(1, 100000000);

 

🔍 성능 테스트 & 실행계획 확인

EXPLAIN ANALYZE
SELECT COUNT(*) FROM events WHERE event_name LIKE 'event_1%';

                                                                                 QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=250.00..250.02 rows=1 width=8) (actual time=3140.088..3140.090 rows=1 loops=1)
   ->  Custom Scan (Citus Adaptive)  (cost=0.00..0.00 rows=100000 width=8) (actual time=3140.057..3140.062 rows=32 loops=1)
         Task Count: 32
         Tuple data received from nodes: 256 bytes
         Tasks Shown: One of 32
         ->  Task
               Tuple data received from node: 8 bytes
               Node: host=192.168.67.171 port=5432 dbname=mydb
               ->  Finalize Aggregate  (cost=40624.46..40624.47 rows=1 width=8) (actual time=2685.887..2685.977 rows=1 loops=1)
                     ->  Gather  (cost=40624.24..40624.45 rows=2 width=8) (actual time=2685.883..2685.973 rows=1 loops=1)
                           Workers Planned: 2
                           Workers Launched: 0
                           ->  Partial Aggregate  (cost=39624.24..39624.25 rows=1 width=8) (actual time=2685.533..2685.534 rows=1 loops=1)
                                 ->  Parallel Seq Scan on events_102050 events  (cost=0.00..39262.58 rows=144663 width=0) (actual time=2.451..2618.829 rows=347366 loops=1)
                                       Filter: (event_name ~~ 'event_1%'::text)
                                       Rows Removed by Filter: 2777354
                   Planning Time: 24.921 ms
                   Execution Time: 2686.037 ms
 Planning Time: 8.804 ms
 Execution Time: 3140.154 ms
(20 rows)

 

🔍 샤드 분포 확인(Citus 12 기준 호환)

SELECT
  p.shardid,
  p.nodename,
  s.logicalrelid::regclass AS logical_table,
  p.shardstate
FROM pg_dist_shard_placement p
JOIN pg_dist_shard s ON s.shardid = p.shardid
WHERE s.logicalrelid = 'events'::regclass
ORDER BY p.shardid;

 shardid |   nodename    | logical_table | shardstate
---------+---------------+---------------+------------
  102040 | 192.168.67.113 | events        |          1
  102041 | 192.168.67.171 | events        |          1
  102042 | 192.168.67.244 | events        |          1
  102043 | 192.168.67.113 | events        |          1
  102044 | 192.168.67.171 | events        |          1
  102045 | 192.168.67.244 | events        |          1
  102046 | 192.168.67.113 | events        |          1
  102047 | 192.168.67.171 | events        |          1
  102048 | 192.168.67.244 | events        |          1
  102049 | 192.168.67.113 | events        |          1
  102050 | 192.168.67.171 | events        |          1
  102051 | 192.168.67.244 | events        |          1
  102052 | 192.168.67.113 | events        |          1
  102053 | 192.168.67.171 | events        |          1
  102054 | 192.168.67.244 | events        |          1
  102055 | 192.168.67.113 | events        |          1
  102056 | 192.168.67.171 | events        |          1
  102057 | 192.168.67.244 | events        |          1
  102058 | 192.168.67.113 | events        |          1
  102059 | 192.168.67.171 | events        |          1
  102060 | 192.168.67.244 | events        |          1
  102061 | 192.168.67.113 | events        |          1
  102062 | 192.168.67.171 | events        |          1
  102063 | 192.168.67.244 | events        |          1
  102064 | 192.168.67.113 | events        |          1
  102065 | 192.168.67.171 | events        |          1
  102066 | 192.168.67.244 | events        |          1
  102067 | 192.168.67.113 | events        |          1
  102068 | 192.168.67.171 | events        |          1
  102069 | 192.168.67.244 | events        |          1
  102070 | 192.168.67.113 | events        |          1
  102071 | 192.168.67.171 | events        |          1

 

 

🙌 댓글, 공감, 공유는 큰 힘이 됩니다! 😄

 

 


Dictionary View 리스트

✅ Dictionary

pg_aggregate 사용자 정의 및 내장 집계 함수에 대한 정보
pg_am 접근 방법(access methods), 예: btree, hash 등
pg_amop 접근 방법 연산자(operator)에 대한 정보
pg_amproc 접근 방법에서 사용하는 지원 함수들
pg_attrdef 컬럼 기본값 (DEFAULT) 저장
pg_attribute 테이블/뷰의 각 컬럼 정보
pg_auth_members 역할(role) 간의 멤버십 관계
pg_authid 역할(role)에 대한 기본 정보 (암호 포함, superuser 여부 등)
pg_cast 형변환 함수 정보 (예: int → text)
pg_class 테이블, 인덱스, 시퀀스 등 객체 정보
pg_collation 문자 정렬 방식 정보
pg_constraint 제약조건 정보 (PK, FK, CHECK 등)
pg_conversion 문자셋 간 변환 정보
pg_database 데이터베이스 목록
pg_db_role_setting 특정 DB/Role 조합에 대한 GUC 설정
pg_default_acl 기본 접근 권한 (DEFAULT PRIVILEGES)
pg_depend 오브젝트 간 의존 관계
pg_description 객체에 부여된 설명(comment)
pg_enum 열거형(enum) 타입 값
pg_event_trigger 이벤트 트리거 정보
pg_extension 확장(extension) 정보
pg_foreign_data_wrapper 외부 데이터 래퍼 (FDW) 정의
pg_foreign_server 외부 서버 정의
pg_foreign_table 외부 테이블 정의
pg_index 인덱스 정보 (pg_class와 연결됨)
pg_inherits 테이블 상속 관계 정보
pg_init_privs 초기 권한 상태 저장용 (ALTER 권한 추적용)
pg_language 함수 작성 언어 정보 (sql, plpgsql 등)
pg_largeobject 대형 객체 데이터 저장
pg_largeobject_metadata 대형 객체 메타데이터 (소유자, 권한 등)
pg_namespace 스키마 정보
pg_opclass 연산자 클래스 정보
pg_operator 연산자 정의
pg_opfamily 연산자 패밀리 정의
pg_parameter_acl 파라미터 접근 권한
pg_partitioned_table 파티셔닝된 테이블 정보
pg_policy Row-Level Security 정책 정보
pg_proc 함수/프로시저 정의
pg_publication logical replication 용 publication 정의
pg_publication_namespace publication과 스키마 연결 정보
pg_publication_rel publication과 테이블 연결 정보
pg_range 범위 타입 정보
pg_replication_origin 논리 복제의 origin 정보
pg_rewrite 뷰나 규칙(rule) 시스템
pg_seclabel 보안 라벨
pg_sequence 시퀀스 객체 정보
pg_shdepend 공유 객체 의존성
pg_shdescription 공유 객체 설명
pg_shseclabel 공유 객체 보안 라벨
pg_statistic planner가 사용하는 통계 정보 (ANALYZE 결과)
pg_statistic_ext 확장 통계 정보 (다변량 등)
pg_statistic_ext_data 확장 통계의 실제 값
pg_subscription logical replication 구독 정보
pg_subscription_rel subscription에 포함된 테이블
pg_tablespace 테이블스페이스 정의
pg_transform 사용자 정의 타입의 transform
pg_trigger 트리거 정의
pg_ts_config 텍스트 검색 설정
pg_ts_config_map 텍스트 검색 설정 세부 맵핑
pg_ts_dict 텍스트 검색 사전
pg_ts_parser 텍스트 검색 파서
pg_ts_template 텍스트 검색 템플릿
pg_type 타입 정보 (기본 + 사용자 정의)
pg_user_mapping 사용자-서버 매핑 (FDW용)


🧠 1. 확장 및 구성 관련
pg_available_extensions 설치 가능한 확장 목록
pg_available_extension_versions 확장의 설치 가능한 버전 목록
pg_config PostgreSQL 빌드 및 설정 정보
pg_settings 현재 GUC 설정 파라미터 값 (SHOW ALL과 동일)
pg_file_settings postgresql.conf에서 읽은 설정 정보
pg_hba_file_rules pg_hba.conf에 정의된 인증 규칙
pg_ident_file_mappings pg_ident.conf의 유저 매핑

🧩 2. 역할, 사용자 관련
pg_user pg_roles와 동일, but 패스워드 없음
pg_roles 모든 역할(사용자/그룹 포함)
pg_group 그룹 역할 정보 (구버전 호환용)
pg_shadow 사용자 정보 + 암호 포함 (슈퍼유저만 접근)

📊 3. 통계 및 모니터링
▶️ 세션 및 활동
pg_stat_activity 현재 실행 중인 세션 정보
pg_prepared_statements 준비된 statement 목록
pg_prepared_xacts 준비된 트랜잭션 목록 (2PC용)
pg_replication_origin_status 논리 복제 origin 상태
pg_stat_replication 복제 상태
pg_stat_wal_receiver WAL 수신기 상태
pg_replication_slots replication slots 목록
pg_stat_replication_slots slots의 활동 상태
pg_stat_ssl SSL 연결 정보
pg_stat_gssapi GSSAPI 인증 정보
pg_stat_subscription 구독자 상태
pg_stat_subscription_stats 구독 통계

▶️ 성능 및 자원
pg_locks 현재 세션의 잠금 정보
pg_backend_memory_contexts backend 메모리 사용 상세
pg_shmem_allocations shared memory 사용 상태
pg_stat_wal WAL 쓰기 관련 통계
pg_stat_archiver WAL 아카이버 상태
pg_stat_bgwriter 백그라운드 writer 통계
pg_stat_checkpointer 체크포인트 정보
pg_stat_io IO 통계
pg_stat_recovery_prefetch 복구 중 prefetch 통계

🔄 4. 진행중 작업 정보
pg_stat_progress_vacuum VACUUM 진행 정보
pg_stat_progress_analyze ANALYZE 진행 정보
pg_stat_progress_cluster CLUSTER 진행 정보
pg_stat_progress_copy COPY 진행 정보
pg_stat_progress_create_index 인덱스 생성 중 상태
pg_cursors 열린 커서 목록

📋 5. 객체 메타정보 뷰 (편의용)
pg_tables 사용자 테이블 목록
pg_views 사용자 뷰 목록
pg_indexes 인덱스 목록
pg_matviews materialized view 목록
pg_sequences 시퀀스 목록
pg_rules RULE 정보
pg_policies Row-Level Security 정책
pg_user_mappings FDW 사용자 매핑
pg_publication_tables publication에 포함된 테이블
pg_seclabels 보안 라벨 목록

📈 6. 통계 뷰 (Tables & Indexes)
▶️ 테이블, 인덱스 단위 통계
pg_stat_all_tables 모든 테이블의 통계
pg_stat_user_tables 사용자 테이블의 통계
pg_stat_sys_tables 시스템 테이블의 통계
pg_stat_xact_all_tables 트랜잭션당 테이블 통계
pg_stat_xact_user_tables 트랜잭션당 사용자 테이블 통계
pg_stat_xact_sys_tables 트랜잭션당 시스템 테이블 통계
pg_stat_all_indexes 모든 인덱스 통계
pg_stat_user_indexes 사용자 인덱스 통계
pg_stat_sys_indexes 시스템 인덱스 통계
pg_stat_user_functions 사용자 함수 사용 통계
pg_stat_xact_user_functions 트랜잭션 단위 함수 통계

▶️ I/O 통계
pg_statio_all_tables 테이블 I/O 통계
pg_statio_user_tables 사용자 테이블 I/O
pg_statio_sys_tables 시스템 테이블 I/O
pg_statio_all_indexes 인덱스 I/O
pg_statio_user_indexes 사용자 인덱스 I/O
pg_statio_sys_indexes 시스템 인덱스 I/O
pg_statio_all_sequences 시퀀스 I/O
pg_statio_user_sequences 사용자 시퀀스 I/O
pg_statio_sys_sequences 시스템 시퀀스 I/O

📚 7. 통계 정보 저장소 (ANALYZE)
pg_stats 컬럼 단위 통계 (ANALYZE 결과)
pg_stats_ext 확장 통계 정보
pg_stats_ext_exprs 확장 통계 표현식

🌍 8. 시간대 정보
pg_timezone_abbrevs 시간대 약어 목록
pg_timezone_names 시간대 전체 이름 목록

 

 

🙌 댓글, 공감, 공유는 큰 힘이 됩니다! 😄

 

 

 

 

+ Recent posts