본문 바로가기
728x90
반응형

oracle14

[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 옵티마이저 오늘은 오라클 데이터베이스에서 성능 최적화의 핵심인 조인 방식과 옵티마이저 처리 과정에 대해 정리해보려고 합니다.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.
[DB/Oracle] 계층형 쿼리로 Q&A 게시판 구현하기 게시판을 만들다 보면 질문(Question)과 답변(Answer) 구조를 처리해야 하는 경우가 많다.특히 Q&A 게시판은 단일 테이블(TB_POST)에 질문과 답변을 함께 저장하면서, 부모-자식 관계를 이용해 계층 구조로 표현한다. 오늘은 CONNECT BY 를 활용해 이를 구현하는 방법을 정리해보자. ❓ Q1. Q&A 게시판에서 질문과 답변을 어떻게 구분하는가?Q&A 구조에서는 보통 다음과 같이 데이터를 관리한다.질문글 → PARENT_POST_ID 가 NULL답변글 → PARENT_POST_ID 에 질문글의 POST_ID 값 저장즉, 부모가 없으면 질문, 부모가 있으면 답변으로 구분할 수 있다.아래 쿼리에서는 CASE WHEN 문으로 질문/답변 구분 컬럼(GUBUN)을 만들어준다.CASE WHEN P.. 2025. 9. 17.
728x90
반응형