본문 바로가기
728x90

Database581

[ORACLE] DBA_ANALYZE_OBJECTS 완벽 가이드 : 통계 수집과 성능 최적화의 핵심 Oracle 데이터베이스의 성능 최적화는 결국 정확한 통계 정보(statistics)에서 출발합니다. 옵티마이저(Optimizer)는 실행 계획을 결정할 때 테이블, 인덱스, 파티션 등의 통계 정보를 참조합니다. 이 통계가 오래되었거나 잘못된 경우, 실행 계획이 비효율적으로 선택되어 전체 시스템 성능이 저하될 수 있습니다. 이때 중요한 관리 뷰 중 하나가 바로 DBA_ANALYZE_OBJECTS입니다. 이 글에서는 DBA_ANALYZE_OBJECTS의 구조, 기능, 활용 사례, 그리고 실무 최적화 전략까지 전문가 관점에서 깊이 있게 다루겠습니다.1. DBA_ANALYZE_OBJECTS란 무엇인가?DBA_ANALYZE_OBJECTS 뷰는 Oracle 내부에서 수행되는 통계 분석(Analyze Statist.. 2025. 10. 13.
[ORACLE] DBA_ALL_TABLES 완벽 가이드 : 오라클 테이블 구조의 핵심 이해 Oracle 데이터베이스에서 모든 테이블의 구조적 특성과 저장 속성을 한눈에 파악하려면 DBA_ALL_TABLES 뷰를 이해해야 합니다. 이 뷰는 데이터베이스 관리자(DBA)가 시스템 전반의 테이블 특성을 분석하고, 성능 최적화 및 스토리지 관리 정책을 수립하는 데 핵심적인 역할을 합니다. 오늘은 DBA_ALL_TABLES의 구조, 주요 컬럼, 활용 사례, 그리고 실제 운영 환경에서의 모니터링 팁까지 종합적으로 다뤄보겠습니다.1. DBA_ALL_TABLES란?DBA_ALL_TABLES는 Oracle 데이터베이스의 모든 접근 가능한 테이블에 대한 정보를 제공하는 데이터 딕셔너리 뷰입니다. 이 뷰는 DBA뿐 아니라 개발자, 성능 튜너에게도 중요한 역할을 하며, 각 테이블의 물리적 속성(스토리지 구조, 캐시 .. 2025. 10. 13.
[ORACLE] DBA_2PC_PENDING 뷰 완벽 가이드 : 분산 트랜잭션 복구 핵심 Oracle의 분산 트랜잭션 환경에서 발생할 수 있는 ‘불완전 커밋’(in-doubt transaction) 문제를 해결하기 위해 사용되는 주요 뷰가 바로 DBA_2PC_PENDING입니다. 이 뷰는 2단계 커밋(2PC: Two-Phase Commit) 프로토콜의 중간 또는 실패 상태를 추적하고, 복구 절차를 수행하기 위한 필수 정보를 제공합니다. 본 글에서는 DBA_2PC_PENDING의 구조, 주요 컬럼, 내부 동작 원리, 복구 시나리오를 단계별로 정리해 Oracle DBA가 실무에서 즉시 활용할 수 있도록 구성했습니다.1. DBA_2PC_PENDING의 개요DBA_2PC_PENDING 뷰는 Oracle 분산 트랜잭션의 커밋 과정에서 문제가 발생했을 때, ‘완전 커밋되지 않은 상태의 트랜잭션’을 보여.. 2025. 10. 12.
[ORACLE] DBA_2PC_NEIGHBORS 완전 해설 및 분산 트랜잭션 관리 가이드 1. 개요DBA_2PC_NEIGHBORS 뷰는 Oracle Database의 분산 트랜잭션(Distributed Transaction) 환경에서 다른 데이터베이스 노드(Neighbor)와의 트랜잭션 관계를 관리하기 위한 핵심 데이터 사전 뷰입니다. 이 뷰는 Two-Phase Commit(2PC) 프로토콜의 실행 과정에서 참여하는 데이터베이스 간의 연결 정보를 제공합니다. 즉, 이 뷰를 통해 트랜잭션이 어떤 노드 간에 분산되어 있는지, 그리고 커밋 혹은 롤백 과정에서 어떤 인스턴스들이 참여하고 있는지를 추적할 수 있습니다.2. Two-Phase Commit(2PC) 개념2PC는 분산 데이터베이스 시스템에서 트랜잭션 일관성을 유지하기 위해 사용되는 프로토콜입니다. 여러 노드에 걸쳐 하나의 트랜잭션이 수행될 .. 2025. 10. 12.
[ORACLE] DBA_HISTOGRAMS 완전 해설 및 실무 활용 가이드 1. 개요DBA_HISTOGRAMS 뷰는 Oracle 옵티마이저가 통계 정보를 활용해 효율적인 실행 계획을 수립할 수 있도록 지원하는 핵심 데이터 딕셔너리입니다. 이 뷰는 테이블 컬럼의 데이터 분포(Distribution)를 세밀하게 저장하며, 히스토그램(Histogram) 기반으로 쿼리 성능을 최적화할 수 있게 해줍니다. 즉, 동일한 SQL 문이라도 데이터의 실제 분포에 따라 다르게 실행 계획을 수립할 수 있는 근거가 되는 뷰입니다.2. DBA_HISTOGRAMS의 역할데이터베이스 옵티마이저는 테이블 통계 정보를 기반으로 각 쿼리의 실행 비용을 계산합니다. 이때 단순히 평균값만을 사용하는 것이 아니라, 컬럼 값의 비균등 분포(skewness)를 고려해야 하는 경우가 많습니다. 이를 위해 Oracle은 .. 2025. 10. 12.
[ORACLE] ALL_JOBS 완전 해설 및 실무 활용 가이드 1. 개요ALL_JOBS 뷰는 Oracle Database에서 DBMS_JOB 패키지를 통해 등록된 비동기 작업(Job)의 메타데이터를 조회하기 위한 핵심 데이터 딕셔너리 뷰입니다. 이 뷰는 사용자가 직접 소유한 Job뿐 아니라, 접근 권한이 부여된 스키마의 Job까지 확인할 수 있도록 설계되어 있습니다. 스케줄링된 백그라운드 작업을 관리하거나, 자동화된 프로세스를 점검하는 데 필수적으로 활용됩니다.2. 기본 구조ALL_JOBS는 다음과 같은 주요 컬럼을 포함합니다. 이 컬럼들을 이해하면 스케줄러 기반 배치 관리의 핵심 로직을 완벽하게 파악할 수 있습니다.컬럼명데이터 타입설명JOBNUMBER작업의 고유 식별 번호LOG_USERVARCHAR2작업을 등록한 사용자 계정PRIV_USERVARCHAR2권한을 통.. 2025. 10. 12.
728x90