과목SQL 고급 활용 및 튜닝 SQL 기본 및 활용 데이터 모델링의 이해 단원Oracle 아키텍처 입문: Database·Instance·Startup 단계 Oracle 메모리 구조: SGA·PGA·UGA와 Workarea Oracle 프로세스 구조: Server Process·DBWn·LGWR·CKPT 접속 아키텍처: Listener·Service·Session·Dedicated·Shared Server SQL 처리 과정의 전체 흐름: Parse부터 Execute·Fetch까지 Shared Pool과 SQL Parsing: Library Cache·Soft Parse·Hard Parse 옵티마이저 입문: SQL의 실행 방법을 결정하는 원리 CBO의 판단 과정: Query Transformer·Estimator·Plan Generator 실행계획 읽기 기초: Row Source Tree와 예상·실제 계획 예상 실행계획 확인: EXPLAIN PLAN·PLAN_TABLE·AUTOTRACE 옵티마이저 통계의 기초: Table·Column Statistics 읽기 Selectivity·Cardinality·Cost: 통계 추정과 Plan 선택 진단 SQL 작업량의 기초: Logical I/O·Physical I/O와 읽기 방식 DB Buffer Cache 내부 동작: Hash 탐색·Buffer 상태·Hot Block 진단 실제 실행 통계 읽기: GATHER_PLAN_STATISTICS와 E-Rows·A-Rows Parent·Child Cursor 이해와 진단: SQL_ID·VERSION_COUNT·V$SQL_SHARED_CURSOR Cursor 재사용 계층: Library Cache·Session Cursor Cache·JDBC Statement Cache B-Tree 인덱스 구조와 탐색: Root·Branch·Leaf·ROWID Index Scan과 Table Full Scan: 선택도·I/O·손익분기점 Index Unique·Range·Descending Scan: 탐색 범위와 정렬 방향 Index Full Scan·Fast Full Scan·Table Full Scan: 정렬·I/O·Covering Index Skip Scan: 선두 컬럼 없이 논리 Subindex 탐색 인덱스를 활용하는 조건식: 컬럼 가공·묵시적 형변환·Sargability IN·BETWEEN·LIKE 조건의 인덱스 탐색: 반복 Probe와 연속 범위 복합 인덱스의 조건 처리: Access Predicate·Index Filter·Table Filter 복합 인덱스의 검색 범위: 사전식 정렬과 Start·Stop Key 테이블 랜덤 액세스의 원리: ROWID·Buffer I/O·후행 조건 Clustering Factor 이해: 인덱스 순서와 Table Block 배치 인덱스 손익분기점: ROWID 액세스와 Full Scan 비용 비교 ROWID Batching과 결과 순서: TABLE ACCESS BY INDEX ROWID BATCHED 인덱스 스캔 효율과 Covering: Leaf Scan·Table Access 줄이기 복합 인덱스 설계 원칙: 조건·정렬·수행 빈도·DML 비용 Function-Based Index: 표현식 검색·NULL·정렬 최적화 Bitmap Index의 원리와 적용: 비트 연산·NULL·DML 동시성 Index Join과 Bitmap Conversion: 여러 인덱스의 ROWID 결합 IOT 구조와 성능: Primary Key Leaf·Overflow·Secondary Index Cluster Table 구조와 적용: Index Cluster·Hash Cluster 중복 인덱스 관리: 포함 관계·용도 차이·안전한 제거 Histogram 이해: 데이터 편중·인기 값·Bind 실행계획 복합 조건의 추정 보완: Dynamic Statistics·Column Group·Expression Statistics Index·System Statistics: Access Path 비용을 만드는 입력값 DBMS_STATS 통계 운영: 수집·Stale·Incremental·Pending·복구 Bind Variable과 실행계획: Bind Peeking·Adaptive Cursor Sharing 조인의 결과 의미: Inner·Outer·Semi·Anti Join과 NULL 조인 최적화의 기본: 조인 순서·접근 경로·조인 방식 조인 전에 행 수 줄이기: 필터링·선집계·부분범위 처리 Nested Loops Join 기본 원리: Outer·Inner·반복 탐색 Nested Loops Join 튜닝: 선행 집합·Predicate·ROWID 비용 Nested Loops Join 고급 실행 구조: ROWID Batching·Hint 검증 Sort Merge Join의 원리와 튜닝: 정렬·병합·Workarea·비등치 조인 Hash Join의 원리와 Workarea: Build·Probe·PGA·TEMP Spill Hash Join 고급 튜닝: Data Skew·Bloom Filter·Build Input 제어 Sort Operation 이해: ORDER BY·JOIN·WINDOW SORT Sort Workarea 진단: Optimal·One-Pass·Multi-Pass·TEMP Sort 부하 줄이기: 입력 행 수·Row 폭·연산 위치 집계와 중복 제거: SORT·HASH Operation 비교 집합 연산·EXISTS로 Sort와 중복 제거 줄이기 Index Order로 Sort 생략: ORDER BY·Top-N·GROUP BY NOSORT Top-N 처리 원리: ROWNUM·FETCH FIRST·STOPKEY MIN/MAX 최적화와 Top-1 조회: 값·행·동점의 차이 부분범위 처리 기초: 첫 행 응답·Fetch 중단·전체 처리량 부분범위 처리 성립 조건: Index Order·STOPKEY·Blocking Operation 옵티마이저 목표 모드: ALL_ROWS와 FIRST_ROWS(n) Pagination 성능 원리: ROWNUM·OFFSET·Keyset Pagination 조회 왕복 최소화: Fetch Size·Row Limiting·OFFSET·Keyset Pagination n-Tier 부분범위 처리 구현: Stateful Cursor·Stateless Pagination·Connection Pool Array Fetch 실측: Fetch Call·Rows per Fetch·Network·메모리 스칼라 서브쿼리 기본 원리: 0행·1행·다중행과 반복 실행 상관 서브쿼리 FILTER 실행: Starts·조기 종료·Semi/Anti Join Query Transformation 기초: Query Block·동등 변환·Plan 탐색 Subquery Unnesting: Semi·Anti Join과 NOT IN NULL 정합성 LATERAL·APPLY 조인: 왼쪽 상관 참조와 Key별 Top-N 스칼라 서브쿼리 반복 제거: 사전 집계·LATERAL·구조화 반환 Scalar Subquery Cache·Result Cache·DETERMINISTIC: 재사용과 정확성 View Merging·Predicate Pushdown: Query Block 통합과 조건 조기 적용 OR Expansion·조건 이행·Join Elimination: 분기·파생 조건·불필요 조인 제거 이력 데이터 조회: 점이력·선분이력·기간 겹침과 Temporal Validity 최신 이력 조회: Top-1·ROW_NUMBER·DENSE_RANK·KEEP Static·Dynamic SQL과 선택적 검색조건: NULL 의미·Bind·SQL Shape·보안 Materialized View와 Query Rewrite: Refresh·정합성·운영 비용 적응형 최적화: Adaptive Plan·Statistics Feedback·Adaptive Cursor Sharing 옵티마이저의 한계와 역할 분담: 좋은 판단 조건 만들기 옵티마이저 힌트 사용법: 문법·적용 범위·검증 응답시간 분석: DB Time·CPU·Wait Event 누적 성능 통계 읽기: V$SYSSTAT·V$SESSTAT과 Delta Top SQL 선정: V$SQL의 총량·실행당 부하·Child Cursor 단일 세션 정밀 진단: SQL Trace·TKPROF 시간 구간 성능 분석: AWR·Statspack·ASH 진단 도구 선택과 교차 검증: AUTOTRACE·DISPLAY_CURSOR·SQL Monitor·V$SQL SQL 성능 문제 진단 절차: 증상 정의부터 개선 검증까지 파티션 설계의 기본: Range·List·Hash·Composite·Interval·Reference Partition Pruning 해석: Static·Dynamic·PSTART·PSTOP 파티션 인덱스 설계: Local·Global·Prefixed·Unique Partition-Wise Join: Full·Partial·병렬 재분배 파티션 유지관리와 대량 데이터 처리: EXCHANGE·DROP·TRUNCATE 병렬 실행 구조: QC·PX Server Set·Table Queue·Granule 병렬 데이터 분배와 Skew: HASH·BROADCAST·RANGE·Bloom Filter Parallel Query·DDL·DML 운영: DOP·활성 조건·자원·트랜잭션 Redo·Checkpoint·Commit 원리: WAL·Fast Commit·Instance Recovery 트랜잭션 경계와 격리 수준: ACID·COMMIT·READ COMMITTED·SERIALIZABLE Undo의 원리와 운영: Rollback·Read Consistency·AUM·ORA-01555 Oracle 읽기 일관성: SCN·CR Block·Current Get·SQL Trace Oracle Lock의 기본 구조: Row Lock·TX Enqueue·TM Enqueue·Lock Mode Database Call 최소화: One-SQL·Array DML·Bulk Binding·JDBC Batch SQL 안의 PL/SQL 호출 최적화: Context Switch·Recursive SQL·Set-Based 변환 대량 DML 비용 구조: 탐색·Index·Undo·Redo·Lock·Commit B-Tree 인덱스 DML 비용과 경합: Delete·Split·Hot Block·재구성 DML Call 최소화: One-SQL·FORALL·Array Bind·Batch 집합 기반 DML 선택: MERGE·조인 갱신·Multi-Table INSERT 수정 가능한 조인 뷰: Key Preservation·결정성·안전한 대안 MERGE 정확성과 성능: Source 유일성·조건부 DML·DELETE WHERE 대량 적재 운영 전략: Index·Constraint·UNUSABLE·재구축 Direct-Path Insert: APPEND·HWM·Undo·Redo·NOLOGGING 병렬 DML 운영: 활성화·실제 DOP·제약·검증 ITL과 Block Cleanout: Block 내부 Transaction 추적과 동시 DML DML Write Consistency: Current 갱신·Statement Restart·Lost Update Lock 경합 진단: Waiter·Blocker·TX/TM Event·ITL·Deadlock 비관적·낙관적 동시성 제어: FOR UPDATE·Version Column·재시도 SELECT FOR UPDATE 실전: OF·NOWAIT·WAIT·SKIP LOCKED 안전한 채번 설계: Sequence·Identity·채번 Table·MAX+1 Sequence와 Right-Growing Index 경합: CACHE·RAC·Reverse·Scalable Oracle RAC 구조: 다중 Instance·Cache Fusion·GCS·GES
인덱스 손익분기점: ROWID 액세스와 Full Scan 비용 비교 원래 이론 → 판단 기준 예시·텍스트 좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
이 부분의 원문 → 내 최근 연습 오답 현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
학습 기록 → 오답 기록을 확인하고 있습니다.