본문 바로가기

sqlp 정리3

[SQLP] 4장. 인덱스와 조인 - 인덱스 튜닝 1. 인덱스 튜닝 기초가. 범위 스캔이 불가능하거나 인덱스 사용이 아예 불가능한 경우아래와 같이 인덱스 선두 칼럼을 조건절에서 가공하면 정상적으로 인덱스를 사용할 수 없다.select * from 업체 where substr(업체명, 1, 2) = ‘대한’나. 인덱스 칼럼의 가공인덱스 칼럼을 가공하면 정상적인 Index Range Scan이 불가능해진다.SELECT * FROM 업체 WHERE SUBSTR(업체명,1,2) = '대한' 위와 같은 SQL은 아래처럼 바꿔야 인덱스를 탈 수 있다.SELECT * FROM 업체 WHERE 업체명 LIKE '대한%' 다. 묵시적 형변환인덱스 칼럼을 사용자가 명시적으로 가공하지 않더라도 조건절에서 비교되는 두 값의 데이터 타입이 다르면 내부적으로 형변환이 일어난다... 2019. 3. 19.
[SQLP] 4장. 인덱스와 조인 - 인덱스 기본 원리 1. 인덱스 구조원하는 데이터를 빨리 찾도록 돕는 목적인덱스 깊이(Height)루트에서 리프 블록까지의 거리가. 인덱스 기본루트와 브랜치 블록 : 각 하위 노드들의 데이터 값 범위를 나타내는 키 값과 그 키 값에 해당하는 블록을 찾는 데 필요한 주소 정보를 가짐리프 블록 : 인덱스 키 값과 테이블 레코드를 찾아가는데 필요한 주소 정보(Row Id)를 가짐키값이 같을 때는 주소정보 (Row Id)순으로 정렬됨인덱스 구성 칼럼 중 하나라도 null 값이 아닌 레코드는 인덱스에 저장나. 인덱스 탐색수평적 탐색 : 리프 블록에 저장된 레코드 끼리 연결된 순서에 따라 수평으로 스캔함2. 다양한 인덱스 스캔 방식가. Index Range Scan루트 블록에서 리프 블록까지 수직적으로 탐색한 후에 리프 블록을 필요한.. 2019. 3. 18.
[SQLP] 3장. 옵티마이저 원리 - 쿼리변환 쿼리 변환1. 쿼리변환쿼리 변환(Query Transformation)은, 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는 것을 말함2. 서브쿼리 Unnesting중첩된 서브쿼리(Nested Subquery)를 풀어내는 것을 말함서브쿼리를 메인쿼리와 같은 레벨로 풀어낸다면 다양한 액세스 경로와 조인 메소드를 평가할 수 있음3. 뷰 Merging사람의 눈으로 볼 때는 쿼리를 블록화하는 것이 더 읽기 편할지 모르지만 최적화를 수행하는 옵티마이저의 시각에서는 더 불편함의 뷰 쿼리 블록은 액세스 쿼리 블록(뷰를 참조하는 쿼리 블록)과의 머지(merge) 과정을 거쳐 와 같은 형태로 변환되는데, 이를 ‘뷰 Merging’이라고 함select * from (select.. 2019. 3. 17.