# ----------------------------- # PostgreSQL 구성 파일 # ----------------------------- # #이 파일은 다음 형식의 행으로 구성됩니다. # # 이름 = 값 # # ( "="는 선택 사항입니다.) 공백을 사용할 수 있습니다. 코멘트는 "#"줄의 아무 곳이나 # 매개 변수 이름 및 허용되는 전체 목록 값은 PostgreSQL 문서에서 찾을 수 있습니다. # # 이 파일에 표시된 주석 처리 된 설정은 기본값을 나타냅니다. # 설정을 다시 주석 처리하는 것만으로는 기본값으로 되돌릴 수 없습니다. # 서버를 다시로드해야합니다. # # 이 파일은 서버 시작시 및 서버가 SIGHUP 신호를 수신 할 때 읽습니다. # 실행중인 시스템에서 파일을 편집하는 경우..
PostgreSQL
Autovacuum, Vacuum 에 대해 PostgreSQL 에는 Autovacuum, 혹은 Vacuum 이라는 개념이 존재합니다. 이는 Oracle, MariaDB(MySQL), SQLSERVER 등에는 존재하지 않는 개념이기 때문에 처음 PostgreSQL 을 접하시는 분들은 Vacuum 과 관련된 설정들을 소홀히 하다가 데이터베이스의 트랜잭션이 증가하였을 때 예상밖의 느린 성능을 겪게 될 수 있습니다. 따라서 PostgreSQL 을 안정적으로 운용하기 위해서는 반드시 Autovacuum(Vacuum) 에 대해 이해할 필요가 있습니다. PostgreSQL 의 Autovacuum 은 크게 두 가지 상황에서 동작합니다.1 그 중 하나는 XID wraparound 를 방지하기 위해 XID 를 고정(Fre..

현재 수행중인 SQL 전체 조회 select datname, pid, usename, application_name, client_addr, client_port, backend_start, query_start, wait_event_type, state, backend_xmin query from pg_stat_activity; 위 쿼리 실행시 현재 DB에서 돌고 있는 SQL 전체를 조회할 수 있다. datid oid 데이터베이스oid datname name 데이터베이스 이름 pid integer 프로세스id usesysid oid 사용자고유번호 usename name 사용자이름 application_name text 응용프로그램이름 client_addr inet 접속ip client_hostname ..
* DB LINK? - 현재 데이터베이스 세션 내에서 물리적으로 다른 곳에 위치한 데이터베이스 연결을 지원하는 확장성 모듈. - EXTENSION MODULE - extension 설치 후, 사용자 설정에 맞춰 사용하고 삭제하지 않는 이상 재설치는 불가. - 스키마 지정이 없으면 default로 public에 설치가 되므로 스키마별로 사용이 필요한 경우, ALTER로 변경하거나 삭제 후 재설치하여 사용. * DB LINK EXTENSION 설치 CREATE EXTENSION [ IF NOT EXISTS ] extension_name [WITH] [SCHEMA schema_name] [VERSION version] [FROM old_version] * DB LINK 관리 CREATE EXTENSION IF..
1. Default 값이 있는 필드를 추가하면 안된다 PostgreSQL 10이하 버전에서, Default 값이 있는 필드를 추가하면, 테이블 락이 걸릴 수 있다. 그리고 엄청 느리다. 그래서 이런 쿼리를 날리면 안된다. ALTER TABLE items ADD COLUMN updated_at timestamptz DEFAULT now(); 기본값이 없는 필드를 추가한 후, UPDATE를 날리거나 ALTER TABLE items ADD COLUMN updated_at timestamptz; UPDATE items SET updated_at = now(); 이렇게 쪼개서, UPDATE를 해주는게 좋다. ( 한번에 전체 테이블을 Update를 하면, 오래걸리니까. ) do { numRowsUpdated = e..

Postgresql 에서 슬로우 쿼리 조회 방법 1. 슬로우 쿼리 발생시 로그 남기기 2. 쿼리 실행계획 로그에 남기기 3. 쿼리 실행 통계 확인 1. 슬로우 쿼리가 발생하면 로그 남기기 쿼리 시간이 어느정도 느려지면, 쿼리 실행문을 로그에 남기기 위해 postgresql.conf에 설정값 추가한다. log_min_duration_statement = 5000 그리고 config를 reload 해주면 된다. SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) 특정 데이터베이스, 특정 유저 권한에서 발생한 슬로우쿼리만 모니터링 할 수도 있다. ALTER DATABASE test SET log_min_duration_statement = 5..