방랑로그

[대용량데이터베이스솔루션vol.2] 본문

IT개발/DBMS

[대용량데이터베이스솔루션vol.2]

야키다 2017. 12. 15. 17:25

[대용량데이터베이스솔루션vol.2] 



[ 대용량 데이터베이스 솔루션 II ]


제1장 SQL의 활용


1. SQL과 옵티마이져

1.1. 옵티마이져와 우리의 역할

1.2. 옵티마이져의 최적화 절차

1.3. 옵티마이져의 형태

1.3.1. 규칙기준 옵티마이져

1.3.2. 비용기준 옵티마이져

1.4. 옵티마이져의 한계

1.5. 개발자의 역할


2. SQL 활용의 당위성

2.1. SQL 수행 횟수의 차이

2.2. 랜덤 액세스 발생량의 차이

2.3. 처리경로 최적화의 차이

2.4. 클라이언트/서버 환경에서 SQL의 역할

2.5. 처리경로 개선의 용이성

2.6. 병렬처리에서 SQL의 역할

2.7. 처리과정의 파라미터 활용

2.8. 단순성, 유지보수성, 생산성


3. SQL 활용도 향상 방법

3.1. DECODE 함수를 이용한 IF처리

3.2. SUM(DECODE...)의 활용

3.2.1. SUM(DECODE...)의 기본형

3.2.2. SUM(DECODE...)의 확장형

가. 전체집합의 확장

나. 대분류의 확장

다. 중분류의 확장

라. 로우단위 처리의 확장

3.2.3. SUM(DECODE...) 사용시 주의사항

가. NULL 값의 처리

나. 반복 DECODE의 감소

다. SUM(DECODE...)와 GROUP BY 비교

라. COUNT(DECODE...)의 활용

마. GROUP BY 문에서 MIN의 활용

바. SQL을 어떻게 공부할 것인가?

3.3. UPDATE문의 활용

3.3.1. 확장 UPDATE 문

3.3.2. 수정가능 조인뷰(Modifiable Join View)

가. 수정가능 조인뷰의 제한사항

나. 키보존(Key Preserved) 테이블이란?

다. 수정가능 조인뷰의 활용


제2장 데이터 연결의 다양한 방법


1. 조인을 활용한 데이터 연결

1.1. 카테시안 곱을 이용한 조인

1.1.1. 나열된 컬럼을 여러 레코드로 생성

1.1.2. 첨자 LOOP형 처리

1.2. 관계가 없는 테이블간의 조인

1.3. 처리결과를 고정된 양식에 맞추는 조인

1.4. 조인을 이용한 소계 처리


2. UNION, GROUP BY를 이용한 데이터 연결

2.1. 개념 및 특징

2.2. 양쪽 OUTER 조인의 해결

2.3. 특이한 활용 사례

2.3.1. 이종 로우들의 고정양식 출력

2.3.2. 전후간의 로우 비교

2.3.3. 추출 컬럼의 특이한 가공


3. 저장형 함수를 이용한 데이터 연결

3.1. 개념 및 특징

3.1.1. 절차형 처리

3.1.2. 독립적인 오브젝트

3.1.3. 단일값을 리턴

3.1.4. 로우단위별 실행

3.2. 조인과의 비교

3.3. 유형별 활용

3.3.1. 1:M 조인을 1:1조인으로

3.3.2. M:M조인의 해결

3.3.3. 부분범위처리로의 유도

가. M집합 체크 시의 부분범위처리

나. 전체범위처리로 수행되는 필터처리 해결

다. 특정 부분만 부분범위처리로 유도

3.3.4. 배타적 논리합(Exclusive OR) 관계의 조인


4. 서브쿼리(Subquery)를 이용한 데이터 연결

4.1. 개념 및 특징

4.1.1. 먼저 수행하는 서브쿼리의 조인과의 차이

4.1.2. 나중 수행하는 서브쿼리의 조인과의 차이

4.2. 서브쿼리의 실행계획

4.2.1. 서브쿼리의 실행순서

4.2.2. SORT MERGE 형태의 수행

4.2.3. 필터(Filter) 형식으로 처리되는 경우

4.3. 유형별 활용

4.3.1. M:M관계의 비교

4.3.2. 부정형(Anti) 조인

4.3.3. 부분범위처리로의 유도

4.3.4. ANY,ALL 을 활용한 서브쿼리

4.3.5. 발생 데이터의 목록처리

4.3.6. 액세스 효율화를 위한 서브쿼리

4.4. 서브쿼리 활용시 주의사항

4.4.1. 조인문에서 서브쿼리의 실행순서

4.4.2. MIN,MAX  값을 가진 로우 액세스


제3장 인라인뷰의 활용


1. 단계적인 조인을 위한 활용

2. 순환(RECURSIVE)관계 전개시의 조인

3. 방사형 조인의 해결

3.1. 방사형 조인의 문제점

3.2. 인라인뷰를 이용한 해결

3.3. GROUP BY 된 인라인뷰의 조인 문제점

3.4. GROUP BY 된 인라인뷰의 NESTED LOOPS 조인

3.5. 방사형 조인의 기타 해결방법

4. OUTER 조인시의 처리

4.1. OUTER 조인과 조인 실패의 원인

4.2. OUTER 조인 실패의 해결

4.3. OUTER 조인의 실행계획

4.4. 하나 이상 집합과의 OUTER 조인

5. 실행계획의 제어

6. 부분범위처리로의 유도

7.사용자지정 저장형 함수 사용시의 활용

8. SQL 기능확장을 위한 중간집합 생성

9. 상이한 집합의 통일

9.1. 유사한 집합의 통일

9.2. UNION을 사용한 인라인뷰의 주의사항

10. 기타 특이한 형태의 활용사태

10.1. 실행계획의 분리

10.2. 배치 집계처리로 온라인 액세스


제4장 논리합 연산자의 액세스 효율화


1. 논리합(OR,IN) 연산자의 이해

1.1. OR와 IN의 비교

1.2. AND와 OR 연산자의 특성

1.3. 논리합 연산자의 실행계획

1.4. OR 연산자 사용시의 주의사항

1.4.1. 실행계획 분할 방법

1.4.2. OR 연산자의 해소

1.4.3. 데이터모델링 시의 유의사항


2. IN을 활용한 액세스 효율화

2.1. IN의 결합처리 실행계획

2.2. 실행계획 개선의 유형

2.2.1. 상수값을 이용한 IN조건 추가

2.2.2. 서브쿼리를 이용한 IN조건 추가

가. 현존하는 테이블을 활용하는 방법

나. 모조(Dummy) 테이블을 활용하는 방법

다. ROWNUM을 활용하는 방법

라. 임의의 집합을 생성하는 방법

2.3. IN 조건에서의 상수와 변수의 차이

2.4. IN 조건대상 컬럼의 선정

2.5. 결합인덱스 컬럼 수에 따른 차이

2.6. 동일한 실행계획의 처리범위 차이


3. 중복된 IN 조건의 활용

3.1. 중복 사용된 상수값 IN조건의 실행계획

3.2. 서브쿼리를  포함한 중복 IN조건의 실행계획

3.3. 결합처리 실행계획이 불가능한 형태의 해결

3.4. IN활용시의 주의사항

3.4.1. IN서브쿼리로 인한 메인쿼리의 중복처리

3.4.2. 공급자 역할을 못하는 서브쿼리의 해결

3.4.3. 논리합 연산자에서 'STOP KEY'의 비효율


4. IN을 고려한 결합 인덱스의 선정

4.1. 액세스 유형의 파악

4.2. 인덱스 선정시의 IN조건 활용

'IT개발 > DBMS' 카테고리의 다른 글

[cubrid]doc.education.v.1  (0) 2017.12.15
[toad] toad 교육자료  (0) 2017.12.15
[대용량데이터베이스솔루션vol.1]  (0) 2017.12.15
[mssql] 실행계획  (0) 2017.12.15
[mysql] Explain  (0) 2017.12.15
Comments