본문 바로가기
728x90
반응형

분류 전체보기602

[DB/Oracle] 오라클 SQL 힌트 1. 힌트 작성 규칙위치: SELECT, UPDATE, DELETE 키워드 바로 뒤Query Block 당 하나의 주석에 묶어야 함별칭/원명 일관성: 테이블에 별칭을 썼으면 힌트도 별칭으로Compound Query(UNION, UNION ALL): 각 SELECT 블록마다 지정INSERT 전용 힌트: APPEND원칙: 가급적 힌트 대신 SQL/통계/인덱스로 해결부모/서브쿼리 위치 예시-- 부모 블록에 힌트SELECT /*+ ORDERED USE_NL(e d) */ e.ename, d.dnameFROM ( SELECT * FROM emp ) eJOIN dept d ON d.deptno = e.deptno;-- 서브쿼리 블록에 힌트SELECT e.enameFROM ( SELECT /*+.. 2025. 10. 1.
[DB/Oracle] SQL 튜닝 내용 정리 : 개념부터 DBMS_XPLAN, MONITOR까지 안녕하세요.오늘은 오라클 환경에서 SQL 튜닝을 주제로, 기본 개념부터 실무에서 자주 사용하는 도구와 기법까지 정리해보겠습니다.단순 나열이 아니라, 각 방법이 무엇에 좋고, 어떻게 활용하고, 어떤 출력이 나오며, 무엇을 중점적으로 봐야 개선 효과를 얻을 수 있는지까지 정리해 보겠습니다.1. SQL 튜닝의 이해정의SQL을 더 빠르고 효율적으로 실행되도록 개선하는 작업정확한 결과를 최소한의 리소스로, 최대한 빠르게 도출성능 향상, 리소스 절감, 운영 안정화SQL 튜닝이 중요한 이유전체 DB 성능 저하의 70~80%는 비효율적인 SQL화면 지연, 배치 작업 지연 대부분은 SQL 튜닝으로 해결잘못된 SQL은 CPU, I/O, TEMP 등 자원을 과도하게 사용데이터 증가에도 안정적 성능 확보 가능2. SQL 튜닝.. 2025. 9. 30.
[DB/Oracle] 오라클 SQL 옵티마이저 오늘은 오라클 데이터베이스에서 성능 최적화의 핵심인 조인 방식과 옵티마이저 처리 과정에 대해 정리해보려고 합니다.Nested Loop Join, Sort-Merge Join, Hash Join 같은 물리적 조인부터, 인덱스 액세스 방식, 옵티마이저의 쿼리 처리 단계, 통계 관리까지 전부 한 자리에 모았습니다.1. 논리적 조인 vs 물리적 조인논리적 조인(Logical Join): SQL 레벨에서 기술하는 INNER JOIN, OUTER JOIN, SEMI JOIN, ANTI JOIN 같은 개념적 조인물리적 조인(Physical Join): 옵티마이저가 실제 실행 시 선택하는 Nested Loop, Sort-Merge, Hash Join 같은 실행 알고리즘👉 즉, 논리적 조인은 “무엇을” 나타내고, 물리.. 2025. 9. 25.
[DB/Oracle] Oracle SQL Join : 논리적 조인 & 물리적 조인 데이터베이스에서 Join은 여러 테이블을 연결해 원하는 결과를 만드는 핵심 도구입니다.Oracle SQL에서는 크게 두 가지 차원에서 조인을 이해할 수 있습니다.논리적 조인(Logical Join): 결과 집합 관점 → 어떤 데이터를 가져올까?물리적 조인(Physical Join): 실행 계획 관점 → 데이터를 어떻게 가져올까?이번 포스팅에서는 논리적 조인 6가지 유형과 물리적 조인 3가지 방식을 다이어그램, SQL 예제와 함께 정리해보겠습니다. 🔹 1. 논리적 조인 (Logical Join)① Inner Join교집합: 두 테이블 모두에 존재하는 데이터만 가져옴.SELECT a.*, b.*FROM A aINNER JOIN B b ON a.key = b.key; 📌 활용: 고객-주문 관계에서 실제 .. 2025. 9. 25.
[DB/Oracle] Oracle Index 1) 인덱스란 무엇인가?정의인덱스(Index)는 테이블의 특정 컬럼 값을 정렬·구조화해 포인터로 해당 Row의 물리적 위치(ROWID)로 빠르게 점프하게 돕는 스키마 객체입니다.특징 요약검색 성능 향상: Full Table Scan 대신 인덱스 경로로 I/O를 크게 줄임.테이블과 독립적: 생성/삭제가 테이블 데이터에 직접 영향은 없음. (단, 테이블을 삭제하면 해당 테이블의 인덱스는 함께 삭제)자동 사용/유지: 옵티마이저가 자동 선택, DML 시 인덱스도 자동 갱신.생성 방식:명시적: CREATE INDEX …자동: PK/UNIQUE 제약 생성 시 자동 인덱스 생성예제-- 명시적 생성CREATE INDEX idx_emp_ename ON scott.emp(ename);-- PK 제약 → 인덱스 자동 생성A.. 2025. 9. 23.
[DB/Oracle] Oracle Data Block이란? 📌 Oracle Data Block이란?1. Oracle Data Block의 정의오라클 데이터베이스에서 데이터 블록(Data Block)은 데이터 저장과 입출력의 최소 단위입니다.테이블의 행(Row), 인덱스 정보 등 모든 데이터는 결국 블록 단위로 디스크에 저장되고, 캐시에서 읽혀집니다.데이터베이스 계층 구조를 간단히 정리하면 다음과 같습니다.Tablespace → Segment(테이블/인덱스 등) → Extent → Data Block → Row2. Oracle Data Block의 내부 구조데이터 블록은 단순히 데이터를 담는 그릇이 아니라, 캐시 관리 / 트랜잭션 동시성 제어 / 데이터 저장을 모두 담당하는 구조를 가지고 있습니다.(1) Cache Layer블록이 SGA의 Buffer Cache.. 2025. 9. 18.
728x90
반응형