728x90 성능튜닝10 [PYTHON] 대용량 CSV/JSON 파싱 시 Generator와 Stream 처리의 성능 및 메모리 효율성 비교 분석 1. 서론: 왜 단순 파싱은 대용량 데이터에서 실패하는가?현대의 데이터 엔지니어링 환경에서 수십 기가바이트(GB)에 달하는 CSV나 JSON 파일을 다루는 것은 일상적인 작업입니다. 초보 개발자들이 흔히 저지르는 실수는 pandas.read_csv()나 json.load()를 사용하여 파일 전체를 한꺼번에 메모리(RAM)에 올리는 것입니다. 하지만 시스템 메모리를 초과하는 데이터를 로드하려 하면 MemoryError가 발생하며 프로세스가 강제 종료됩니다. 이 글에서는 파이썬의 핵심 기능인 Generator(제너레이터)와 Stream(스트림) 처리 기법을 비교 분석하여, 물리적 메모리 한계를 극복하고 처리 속도를 비약적으로 높이는 전문적인 아키텍처 설계 방법을 제안합니다.2. 핵심 기술 개념 비교대용량 데.. 2026. 2. 20. [ORACLE] USER_TAB_MODIFICATIONS 뷰로 통계 갱신 타이밍 완벽 제어하기 1. USER_TAB_MODIFICATIONS란?USER_TAB_MODIFICATIONS는 Oracle에서 통계 정보 갱신 필요성을 판단하기 위해 테이블의 변경 내역을 추적하는 데이터 딕셔너리 뷰입니다. 이 뷰는 데이터가 얼마나 변경되었는지를 기반으로 통계 갱신 타이밍을 결정할 수 있게 해주며, 대용량 데이터 관리 및 SQL 성능 유지에 매우 중요합니다.2. 주요 컬럼 설명컬럼명설명TABLE_NAME변경 이력을 추적하는 대상 테이블 이름INSERTS통계 수집 이후 발생한 INSERT 횟수UPDATES통계 수집 이후 발생한 UPDATE 횟수DELETES통계 수집 이후 발생한 DELETE 횟수TIMESTAMP마지막 통계 수집 이후 변경이 추적된 시간TRUNCATED테이블이 TRUNCATE 되었는지 여부 (Y.. 2025. 8. 8. [ORACLE] USER_TAB_HISTOGRAMS 뷰로 SQL 옵티마이저 힌트 최적화하기 1. USER_TAB_HISTOGRAMS란?USER_TAB_HISTOGRAMS는 Oracle에서 컬럼 값의 **분포 상태를 히스토그램 형태로 저장하는 데이터 딕셔너리 뷰**입니다.Oracle 옵티마이저(CBO)는 히스토그램 정보를 활용하여 **비균등한 데이터 분포에 최적화된 실행 계획**을 수립합니다.2. 히스토그램이란?히스토그램은 컬럼의 값들이 얼마나 고르게 또는 쏠려 있는지를 보여주는 통계 모델입니다. 다음과 같은 유형이 있습니다:NONE: 히스토그램 없음 (기본 분포로 간주)HEIGHT BALANCED: 값 빈도 기준 분할FREQUENCY: 값 자체의 빈도 기록TOP-FREQUENCY: 자주 나오는 값만 추출HYBRID: 혼합형 (자동 생성 시 등장)3. 주요 컬럼 설명컬럼명설명TABLE_NAME히.. 2025. 8. 8. [ORACLE] USER_TAB_COL_STATISTICS 뷰로 컬럼 통계 최적화 전략 세우기 1. USER_TAB_COL_STATISTICS란?USER_TAB_COL_STATISTICS는 Oracle에서 사용자 테이블에 포함된 컬럼별 통계 정보를 보여주는 데이터 딕셔너리 뷰입니다.이 뷰는 SQL 옵티마이저가 실행 계획을 수립할 때 참조하는 중요 지표들을 포함하며, 성능 튜닝 및 통계 품질 점검에 활용됩니다.2. 통계 정보의 필요성실행 계획 최적화: 통계에 기반한 비용 기반 옵티마이저(CBO)가 최적 경로를 선택병목 진단: 컬럼의 NULL 비율, 고유값 개수 등을 통해 인덱스 또는 풀스캔 여부 판단자동 통계 수집: Oracle은 기본적으로 자동 통계 수집 기능을 제공 (DBMS_STATS 사용)3. 주요 컬럼 설명컬럼명설명TABLE_NAME컬럼이 속한 테이블 이름COLUMN_NAME통계 정보가 저.. 2025. 8. 8. [ORACLE] USER_TABLES 뷰를 활용한 테이블 구조 분석과 관리 전략 1. USER_TABLES란?USER_TABLES는 Oracle 데이터베이스에서 현재 로그인한 사용자가 소유한 모든 테이블의 메타 정보를 제공하는 데이터 딕셔너리 뷰입니다. 이 뷰는 물리적 저장 구조, 파티셔닝, 캐싱 정책, 스토리지 파라미터 등 테이블 관련 속성을 확인하는 데 사용되며, DBA와 개발자에게 테이블 성능 분석 및 구조 검토의 핵심 수단이 됩니다.2. 주요 용도테이블 속성 확인: 테이블이 파티션되어 있는지, 임시 테이블인지, 캐싱 여부 등스토리지 파라미터 분석: 초기 익스텐트, 넥스트 익스텐트, PCT_FREE 등 확인SQL 튜닝 정보 수집: 로우 수나 샘플링 빈도 기반 분석보안 점검 및 감사: 민감 정보가 저장된 테이블 여부 파악3. 주요 컬럼 설명컬럼명설명TABLE_NAME테이블 이름T.. 2025. 8. 8. [ORACLE] USER_SUBPART_COL_STATISTICS로 파티션 컬럼 통계 완전 분석 1. USER_SUBPART_COL_STATISTICS란?USER_SUBPART_COL_STATISTICS는 Oracle 데이터베이스에서 사용자 소유의 서브파티션 테이블에 대한 컬럼별 통계 정보를 저장한 뷰입니다. 이 뷰는 옵티마이저가 쿼리 실행 계획을 결정할 때 참조하는 데이터로, 성능 최적화에 필수적인 역할을 합니다.2. 사용 목적쿼리 최적화: 옵티마이저가 효율적인 실행 계획을 수립하기 위한 기준 제공파티션 단위 튜닝: 각 서브파티션의 통계 정보를 기준으로 성능 병목 구간 진단스케일 아웃 전략 수립: 파티션 통계에 기반한 테이블 구조 개선 방향 제시3. 주요 컬럼 설명컬럼명설명TABLE_NAME통계가 수집된 테이블 이름SUBPARTITION_NAME서브파티션 이름COLUMN_NAME대상 컬럼 이름NU.. 2025. 8. 7. 이전 1 2 다음 728x90