728x90

PostgreSQL 90

PostgreSQL: Autovacuum 최적화

※ PostgreSQL: autovacuum optimization. 안녕하세요. 듀스트림입니다. PostgreSQL을 사용하시는 분들은 VACUUM 때문에 조금씩은 머리가 아프실 거에요.이번 포스팅은 유지관리에서 가장 신경써야할 것 중 하나인 autovacuum에 관한 내용입니다. 19.10. Automatic Vacuuming19.10. Automatic Vacuuming # These settings control the behavior of the autovacuum feature. Refer to Section 24.1.6 for more information. Note that …www.postgresql.org 오토배큠에 대한 PostgreSQL 공식 문서입니다. 네.. 저도 알아요. 여러분..

PostgreSQL 2025.02.14

PostgreSQL: 인덱스

※ Index in PostgreSQL. 안녕하세요. 듀스트림입니다. 설 연휴네요.그래서 그냥 쉬면서 인덱스에 대한 내용을 정리해봤습니다.1. 인덱스?인덱스는 데이터베이스 관리 시스템(DBMS)에서 데이터를 더 빠르고 효율적으로 검색하기 위해 사용되는 데이터 구조입니다.책의 목차처럼, 데이터가 저장된 위치를 미리 정리해 두어 원하는 데이터를 쉽게 찾을 수 있도록 도와줍니다.2. 인덱스의 특징• 빠른 데이터 검색: 테이블 전체를 검색(Full Table Scan)하는 대신, 인덱스를 사용하여 검색 시간을 단축합니다. • 데이터 정렬: 인덱스는 특정 컬럼을 기준으로 데이터를 정렬된 상태로 유지합니다. • 추가 저장 공간 필요: 인덱스를 저장하기 위한 추가적인 디스크 공간이 필요합니다. • 삽입/삭제/수정 시..

PostgreSQL 2025.01.28

PostgreSQL: VACUUM index_cleanup 옵션과 REINDEX의 차이

※ PostgreSQL: Difference Between VACUUM index_cleanup and REINDEX. 안녕하세요. 듀스트림입니다. 오늘의 주제는 VACUUM의 옵션인 index_cleanup과 REINDEX입니다. 두 기능의 목적과 특징 그리고 적합한 상황에 대해 살펴보도록 하겠습니다.1. VACUUM의 index_cleanup 옵션• 목적 - 테이블의 불필요한 공간(데드 튜플)을 정리하면서 인덱스도 함께 최적화합니다. - 인덱스에서 사용되지 않는 엔트리를 제거하여 검색 성능을 유지합니다. • 동작 방식 - index_cleanup: VACUUM 작업 중 인덱스 클린업 수행 여부를 설정하는 옵션입니다. - index_cleanup = auto: PostgreSQL이 자동으로 판단하여 ..

PostgreSQL 2025.01.17

PostgreSQL: Optimizer(Planner)

※ PostgreSQL: Optimizer(Planner).※ Version: PostgreSQL 16. 안녕하세요. 듀스트림입니다. 요즘 계속 튜닝의 연속인 날들 보내고 있습니다. 그래서 작성하는 이번 포스팅은 PostgreSQL의 옵티마이저에 관한 내용입니다.1. 옵티마이저 단계 ① SQL 입력클라이언트가 입력한 SQL 문이 PostgreSQL에 전달됩니다.② 파서(Parser)구문 분석: 입력된 SQL 문을 구문 분석하여 파스 트리(Parse Tree)를 생성합니다.문법 검사: SQL 문이 문법적으로 올바른지 확인하며, 오류가 있을 경우 이 단계에서 에러를 반환합니다. ③ 애널라이저(Analyzer)의미 분석: 재작성된 파스 트리를 기반으로 테이블, 칼럼, 데이터 타입 등의 정보를 시스템 카탈로그에..

PostgreSQL 2025.01.14

PostgreSQL: 바인드 변수 실행 계획 최적화

※ PostgreSQL: Execution Plan Optimization for Bind Variables. 안녕하세요. 듀스트림입니다. 오늘도 재밌는 사례를 하나 가져왔습니다. 고객사에서 오래 걸리는 쿼리에 대해 진단 요청을 받아 방문했습니다. 진단 후, 엔진 및 인덱스 튜닝을 통해 쿼리 수행 시간을 4초에서 0.2초로 단축시켰습니다. 문제는 여기서 끝나지 않았습니다. 다음 날, 고객사로부터 다시 연락이 왔습니다. "튜닝 후 DB 서버에서 수행할 때는 분명 빠른데, APP에서는 여전히 느립니다." 상황을 듣자마자 떠오르는 게 하나 있어서 질문을 던졌습니다. "바인드 변수를 사용하고 계신가요?" 예상대로 바인드 변수를 사용하고 있었습니다. 이번 포스팅에서는 바인드 변수를 PostgreSQL 엔진 관점에..

PostgreSQL 2025.01.10

PostgreSQL: 락 체크 쿼리

※ PostgreSQL: Lock check query. 안녕하세요. 듀스트림입니다. 운영용 쿼리에 대한 문의가 많아서 하나씩 올려보겠습니다.이번 포스팅은 테이블에 걸린 락과 락, 홀더를 확인 할 수 있는 쿼리입니다.1. 테이블 락 체크테이블에 걸려있는 락을 확인할 수 있는 쿼리입니다.SELECT t.relname, l.locktype, page, virtualtransaction, pid, mode, grantedFROM pg_locks l, pg_stat_all_tables tWHERE l.relation = t.relidORDER BY relation ASC;2. 락, 블로킹 세션(홀더) 체크대기 중인 락과 블로킹 세션을..

PostgreSQL 2025.01.07

PostgreSQL: PG ↔ Oracle 이관 시 메타데이터 정합성 체크 쿼리

※ Metadata integrity check methods during migration from PostgreSQL ↔ Oracle.PostgreSQL 체크용 쿼리-- 1.스키마별 디스크 사용량SELECT schema_name, pg_size_pretty(sum(table_size)::bigint) as disk_spaceFROM (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..

PostgreSQL 2025.01.05
728x90