본문 바로가기
728x90

전체 글1380

[ORACLE] CAT 뷰 완전 정복 : USER_CATALOG의 강력한 활용법과 실무 체크리스트 1. 개요CAT 뷰는 Oracle Database의 내부 객체 메타데이터를 한눈에 파악할 수 있도록 제공되는 시스템 카탈로그(Catalog) 뷰입니다. 즉, 데이터베이스 내의 테이블, 뷰, 시퀀스, 동의어(Synonym), 인덱스 등의 객체를 빠르게 검색하고 관리할 수 있는 간단하고 강력한 인덱스 뷰입니다. CAT 뷰는 사실상 Oracle의 모든 객체 정보의 “요약본”으로서, 개발자와 DBA가 가장 기초적으로 사용하는 데이터 딕셔너리 중 하나입니다.2. CAT 뷰의 정의CAT은 SYS 계정에 정의되어 있는 공개 시냅시스(Public Synonym)로, 내부적으로는 USER_CATALOG 또는 USER_OBJECTS를 참조합니다. 따라서 CAT은 사용자 스키마 내에서 자신이 소유한 객체만을 보여줍니다.--.. 2025. 10. 10.
[ORACLE] ALL_OUTLINE_HINTS 완벽 가이드 : 실행 계획 힌트 정보 완전 분석 1. 개요ALL_OUTLINE_HINTS 뷰는 Oracle Database에서 SQL 실행 계획의 Outline Hint 정보를 확인하기 위한 시스템 딕셔너리 뷰입니다. 이 뷰는 ALL_OUTLINES에 저장된 SQL Outline(실행계획 템플릿)에 포함된 힌트(Hint)의 세부 내용을 보여주며, Optimizer가 SQL 실행 시 어떤 힌트를 적용하도록 설계되어 있는지를 명확히 분석할 수 있게 합니다. 즉, SQL 튜닝과 실행 계획 재현(Reproducibility)을 위한 핵심 진단 도구입니다.2. 개념 이해SQL Outline은 특정 SQL 문에 대해 Optimizer가 동일한 실행계획을 유지하도록 힌트를 저장해두는 기능입니다. 이때 Outline 내부에 어떤 힌트가 포함되어 있는지를 확인할 수 .. 2025. 10. 10.
[ORACLE] ALL_OUTLINES 완전 가이드 : 개념 활용 예제 SPM 전환 전략 1. 개요ALL_OUTLINES 뷰는 Oracle Database의 SQL 성능 안정성을 유지하기 위한 핵심 데이터 사전 뷰로, Optimizer가 생성한 실행 계획을 Stored Outline 형태로 저장하여 동일한 SQL 문이 동일한 실행 계획으로 수행되도록 보장하는 기능을 제공합니다. 이 뷰는 SQL 실행 계획의 일관성을 유지하고, 시스템 업그레이드나 통계 변경 이후에도 예측 가능한 성능을 확보하기 위한 필수 요소입니다.2. 등장 배경Oracle Optimizer는 통계 정보, 인덱스 구성, 파라미터 설정 등에 따라 실행 계획이 변동될 수 있습니다. 이러한 변화를 제어하기 위해 Oracle은 Stored Outline 기능을 도입했으며, 그 정보가 바로 ALL_OUTLINES 뷰에 저장됩니다. 따라.. 2025. 10. 10.
[ORACLE] ALL_HISTOGRAMS 완전 정복 : 옵티마이저를 움직이는 히스토그램 이해와 실전 튜닝 ALL_HISTOGRAMS는 컬럼 값의 분포를 버킷(bucket) 단위로 저장해 옵티마이저(Optimizer)의 선택도(Selectivity) 추정에 직접적인 근거를 제공하는 핵심 딕셔너리 뷰입니다. 스큐(Skew) 여부, 상·하위 빈도값, 경계값 변화폭을 정밀하게 파악해 조인 순서, 접근 경로, 인덱스 사용 여부 등 실행계획의 품질을 가르는 지점에서 결정적인 인사이트를 줍니다.왜 ALL_HISTOGRAMS를 봐야 하는가?실제 분포 파악: 평균치 기반 카디널리티 착시를 방지(특히 편향 데이터).계획 재현·비교: 통계 스냅샷 간 버킷 경계 변화로 계획 변화 원인 추적.힌트 최소화: 통계만 바로잡아도 힌트 없는 안정적 실행계획 유도.핵심 개념 요약버킷(bucket): 값 구간을 뜻합니다. 각 버킷의 끝점(E.. 2025. 10. 10.
[ORACLE] TABLE_PRIVILEGES 완전 정복 : 실무 중심 GRANT/REVOKE 점검 쿼리 보안 모범 사례 이 글은 Oracle의 테이블 객체 권한(Table Object Privileges)을 실무 관점에서 깊이 있게 정리합니다. 권한의 의미와 부작용, 안전한 부여/회수 패턴, 그리고 DBA_TAB_PRIVS·ALL_TAB_PRIVS·USER_TAB_PRIVS 계열 뷰를 활용한 점검 쿼리까지 한 번에 확인할 수 있습니다. Oracle 공식 문서를 교차 확인하여 최신 동작을 반영했습니다. 1) 왜 지금 TABLE_PRIVILEGES를 점검해야 할까?보안·감사 요구 강화: 최소권한 원칙을 위반한 광범위 GRANT는 곧바로 리스크로 이어집니다.운영 안정성: 불필요한 WITH GRANT OPTION은 권한 전염(chain grant)을 유발하여 회수(REVOKE)를 복잡하게 만듭니다.버전 변화: 12c부터 도입된 .. 2025. 10. 9.
[ORACLE] SESSION_ROLES 완벽 가이드: 현재 세션에 활성화된 역할을 정확히 읽고, 점검하고, 통제하는 방법 SESSION_ROLES는 “지금 이 세션에서 실제로 쓰이고 있는 역할(role)”을 정확히 보여주는 가장 단순하면서도 강력한 뷰입니다. 권한 감사, 최소 권한 원칙(Least Privilege) 점검, 애플리케이션 세션 검증, 운영 이슈 재현 등에서 첫 번째로 확인해야 할 객체죠. 이 글은 오늘 바로 적용할 수 있는 점검 절차와 예제, 그리고 관련 뷰와의 정확한 비교표까지 담았습니다.핵심 요약: SESSION_ROLES는 “활성화된 역할 목록”을 한 줄에 한 개씩 반환합니다(열: ROLE). 부여는 되었지만 현재 세션에서 꺼져 있는 역할은 보이지 않습니다.1) 왜 SESSION_ROLES부터 봐야 할까?현재 영향 범위: 지금 실행되는 SQL/PLSQL이 어떤 역할의 시스템/객체 권한에 의해 허용되는지 .. 2025. 10. 9.
728x90