12. 아래 SQL을 튜닝하시오 -. 필요시 인덱스 재구성안을 제시하시오 -. 원하는 실행계획이 나오도록 힌트를 정확히 기술하시오 [데이터] 상품 : 1000건 계약 : 5000만건 ▶ 1년 간 계약 건수는 500만 건 ▶ 상품유형코드를 '=' 조건으로 검색할 때의 평균 카디널리티는 100 [인덱스 구성] 상품_PK : 상품번호 상품_X1 : 상품유형코드 계약_PK : 계약번호 계약_X1 : 계약일자 계약_X2 : 상품번호 SELECT DISTINCT P.상품번호, P.상품명, P.상품가격, P.상품분류코드 FROM 상품 P, 계약 C WHERE P.상품유형코드 = :PCLSCD AND C.상품번호 = P.상품번호 AND C.계약일자 >= TRUNC(ADD_MONTHS(SYSDATE,-12)) ★풀이 -..
61번. 아래와 같은 고객연락처변경이력 테이블이 있다. 고객은 10만 명이고, 연락처구분으로 '휴대전화','집전화','회사전화','팩스','이메일','기타' 여섯 개 값이 존재하는 상황에서 아래 SQL을 위한 최적 인덱스를 설계하시오. (PK 인덱스 컬럼 순서는 ERD 식별자 순서와 다를 수 있으니, ERD 식별자는 무시하고 인덱스를 구성할 것) 고객연락처변경이력 # 고객ID NUMBER # 연락처구분 VARCHAR2(10) # 시작일자 VARCHAR2(8) * 종료일자 VARCHAR2(8) * 연락처번호 VARCHAR2(12) * . . . o . . . o . . . SELECT * FROM 고객연락처변경이력 WHERE 고객ID = 200 AND 연락처구분 IN ('휴대전화','집전화','회사전화')..
6.1 기본 DML 튜닝 6.1.1 DML 성능에 영향을 미치는 요소 인덱스 무결성 제약 조건절 서브쿼리 Redo 로깅 Undo 로깅 Lock 커밋 ex) 100만개 테이블 A 인덱스 유무 -. 인덱스 없을때 : 4초 -. 인덱스 2개일때 : 38초 -> 인덱스 두개의 영향력이 이 정도로 크다. ex) 제약조건 + 인덱스 유무 Redo 로깅과 DML 성능 Redo 로그의 세 가지 목적 Database Recovery Cache Recovery (Instance Recovery 시 roll forward 단계) Fast Commit Undo 용도 Transaction Rollback Transaction Recovery (Instance Recovery시 rollback단계) Read Cnsistency ..
5.1.1 소트 수행과정 메모리 소트(In-Memory Sort) : 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 것을 말하며, Internal Sort라고도 한다. 디스크 소트(To-Dist Sort) : 할당받은 Sort Area 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우를 말하며, External Sort 라고도 한다. 5.1.2 소트 오퍼레이션 (1) Sort Aggregate -. 전체 로우 대상으로 수행되며, 실제로 데이터를 정렬하지는 않고, 한 로우를 읽으면서 해당값을 찾는다. ex) min,max, count (2) Sort Order by -. 말그대로 정렬과정을 통해서 데이터를 정렬한다. (3) Sort Group by -. 그룹별 집계를 수행할 때 사용 -. 정렬..
4.1.1 NL 조인 기본메커니즘 -. 일반적으로 NL조인은 Outer와 Innser 양쪽 테이블 모두 인덱스를 이용한다. -. 프로그래밍에서 Nested Loop 구조랑 같음 4.1.2 NL 조인 샐행계회 제어 -. use_nl 힌트 사용 -. B와C와 조인할때는 NL조인, D와 조인할떄는 Hash조인 4.1.3 NL 조인 수행 과정 분석 -. 조인 query 문 실행 순서 예시 4.1.4 NL 조인 튜닝 포인트 -, 사원X_1인덱스를 읽고 사원 table에서 엑세스 필터링하는 비율이 높다면 필터링 되는 컬럼을 사원_X1에 추가하는방안 고려 -. 고객_X1인덱스를 일고 고객 table에서 엑세스 필터링하는 비율이 높다명 필터링 되는 컬럼을 고객_X1에 추가하는 방안 고려 -. 맨 처음 액세스 하는 사원..
※ ROWID : 오브젝트 번호, 데이터파일 번호, 블록번호 DBA : 데이터파일번호 + 블록번호 3.1.2 인덱스 클러스터링 팩터 -. 클러스터링 팩터(Clustering Factor, 이하 'CF')는 '군진성 계수', 특정 컬럼을 기준으로 같은 값을 갖는데이터가 서로 모여있는 정도를 의미한다. -. 인덱스 ROWID로 테이블을 엑세스할 때, 오라클은 래치 획득과 해시 체인 스캔 과정을 거쳐 어렵게 찾아간 테이블 블록에 대한 포인터(메모리 주소값)를 바로 해제하지 않고 일단 유지한다. 이를 버퍼 Pinning이라고 부른다. -. 이 상태에서 다음 인덱스 레코드를 읽었는데, 마침 직전과 같은 테이블 블록을 가르킨다. 그러면 래치 획득과 해시 체인 스캔 과정을 생략하고 바로 테이블 블록을 읽을 수 있다...