분류 전체보기 48

PostgreSQL: PG ↔ Oracle 이관 시 데이터 정합성 체크 방법

※ Data integrity check methods during migration from PostgreSQL ↔ Oracle. 안녕하세요. 듀스트림입니다. 최근 받은 요청 중 하나가 스테이징 DB는 PostgreSQL, 실 운영 DB는 Oracle인데 스테이징 DB를 거쳐서 실 운영 DB에 데이터가 들어왔을 때 그 데이터의 정합성 체크 방법을 알려달란 요청이 있었습니다. 요구사항은 총 두 개였습니다.1. 초기 이관 시 정합성 체크2. 추가 이관 시 추가 이관한 데이터만 정합성 체크(timestamp 컬럼 존재) 이제 어떻게 해야되는지 한 번 살펴볼까요? 정합성 체크의 주 목적은 데이터의 일관성과 정확성, 완전성 체크입니다. ※ 메타데이터 체크는 선행되어야 합니다. PostgreSQL: PG to O..

PostgreSQL 2025.01.04

Linux: top 사용법

※ How to use the "top" command in Linux? 안녕하세요. 듀스트림입니다. 오늘은 시스템 운영에서 빠질 수 없는 top 명령어 사용법에 대해 살펴보겠습니다.1. 목적: CPU, 메모리, 프로세스 사용률 등 시스템 상태를 실시간으로 모니터링2. 기본 출력 구성요약 정보 (Summary area)uptime: 시스템 작동 시간.load average: 최근 1, 5, 15분간 CPU 평균 부하.→ 1.00 = 한 코어의 완전한 사용 (예: 4코어 시스템에서 4.00 이상은 과부하).tasks: 현재 실행 중, 대기 중, 중지된, 좀비 프로세스 개수.%CPU(s): CPU 사용 비율.→ us: 사용자 공간에서의 CPU 사용량.→ sy: 시스템 공간에서의 CPU 사용량.→ ni: Ni..

Linux 2025.01.03

PostgreSQL(ANSI SQL): CTE와 서브쿼리 비교

※ PostgreSQL: ANSI SQL: Comparison of CTE(Common Table Expression) and Subquery. 안녕하세요. 듀스트림입니다. 새해 복 많이 받으세요. 2025년의 첫 포스팅은 많이 사용되는 CTE(Common Table Expression)와 서브쿼리(Subquery)의 차이를 살펴보도록 하겠습니다.1. CTE와 서브쿼리의 차이점항목CTE서브쿼리가독성직관적복잡한 구조일수록 어려워짐재사용성동일 CTE를 여러 번 참조 가능재사용 불가디버깅 용이성각 CTE 단위로 결과를 쉽게 디버깅 가능서브쿼리 단위로 디버깅하기는 어려움성능반복 참조가 필요한 경우 우수단순 필터링, 작은 데이터 셋, 중첩 구조가 단순한 경우 우수코드 구조명시적으로 분리된 블록 구조메인 쿼리 내에..

SQL 2025.01.02

PostgreSQL: timeout 관련 파라미터

※ Timeout-related Parameters in PostgreSQL.※ Version: PostgreSQL 16. 안녕하세요. 듀스트림입니다. PostgreSQL은 약 400개 정도의 파라미터를 설정 가능하도록 설계되어 있습니다.오늘은 가장 많이 사용하는 카테고리 중 하나인 timeout 관련 파라미터를 살펴보겠습니다.statement_timeoutSQL 쿼리 실행에 허용된 최대 시간을 설정합니다. 초과 시 쿼리가 자동으로 중단됩니다.타임아웃은 명령이 서버에 도착한 시점부터 서버에서 완료될 때까지 측정됩니다.단순 쿼리 메시지에 여러 SQL 문이 포함된 경우, 타임아웃은 각 문에 개별적으로 적용됩니다.쿼리 관련 메시지(예: Parse, Bind, Execute, Describe)가 도착하면 타임아..

PostgreSQL 2024.12.28

PostgreSQL(ANSI SQL): LEFT JOIN ... IS NULL과 NOT EXISTS의 차이

※ PostgreSQL: ANSI SQL: Differences Between LEFT JOIN ... IS NULL and NOT EXISTS. 안녕하세요. 듀스트림입니다. 오늘은 LEFT JOIN ... IS NULL과 NOT EXISTS는 어떤 차이가 있고 어떻게 동작하는지 더 깊게 알아보겠습니다. 차이점을 표로 먼저 보여드리겠습니다.항목LEFT JOIN ... IS NULLNOT EXISTS동작 방식조인 결과에서 NULL 값을 확인서브쿼리를 통해 조건 불만족 여부 확인성능큰 데이터셋에서 조인으로 데이터 크기 증가 가능조건이 적은 경우 효율적일 가능성 있음가독성비교적 간단하나 큰 데이터셋에서는 복잡해질 수 있음직관적으로 이해 가능사용 예시외부 조인 결과에서 매칭되지 않는 데이터 확인특정 조건에 맞는..

SQL 2024.12.23

PostgreSQL 쿼리 튜닝: LEFT JOIN ... IS NULL → NOT EXISTS로 변환, 인덱스 활용

※ Transforming LEFT JOIN with NULL Filtering to NOT EXISTS for Better Index Utilization. 안녕하세요. 듀스트림입니다. 오늘 포스팅은 오랜만에 쿼리 튜닝 사례입니다. 이번 사례는 LEFT JOIN ... NULL 필터링을 NOT EXISTS로 변환하고, 인덱스를 추가하여 성능 최적화한 사례입니다.최적화 결과, 실제 운영 쿼리 성능이 약 2배 정도 향상되었습니다. 주요 포인트는 다음과 같습니다.1. LEFT JOIN ... IS NULL → NOT EXISTS로 조인 방식을 변경하여 조인 비용 감소와 락 경합 발생 최소화2. 필터 조건에 맞는 인덱스 추가로 데이터 접근 방식 최적화: Seq Scan(전체 스캔) → Bitmap Index ..

SQL 2024.12.20

도커(Docker): 명령어 사전

※ Docker Command Dictionary. 안녕하세요. 친절한 듀스트림의 Docker 명령어 사전입니다. 🐳 자주 사용하는 명령어명령어설명docker run새 컨테이너 생성 및 실행docker ps실행 중인 컨테이너 목록 확인docker exec실행 중인 컨테이너에 명령어 실행docker images로컬 이미지 목록 보기docker rmi이미지 삭제docker pullDocker Hub에서 이미지 다운로드docker pushDocker Hub에 이미지 업로드docker buildDockerfile로 이미지 생성docker system prune사용하지 않는 리소스 모두 정리1. 컨테이너 관리 명령어명령어설명예시docker ps실행 중인 컨테이너 목록 보기docker psdocker ps -a모..

Linux 2024.12.16

도커(Docker): 사용법

※ Docker Usage Guide  안녕하세요. 듀스트림입니다. 지난 포스팅에서는 VM에 Linux 설치 방법을 알려드렸습니다.오늘은 지난 포스팅에서 설치한 Linux에서 Docker 사용법에 대해 알려드리겠습니다. 리눅스 설치는 지난 포스팅을 참고 부탁드립니다. Oracle VirtualBox를 사용하여 VM에 Linux 설치※ Install Linux on a VM using Oracle VirtualBox.※ Version: Oracle VirtualBox 7.1.4, Linux 8.10 (Rocky).※ 내용은 Windows 기준입니다. 안녕하세요. 듀스트림입니다. 누가 그러더라고요. "PostgreSQL을 Linux에 설치하dewstream.tistory.com 그럼 Docker가 무엇이고 ..

Linux 2024.12.16