1. Partition 기능
- 파티션은 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장함
- 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제, 조회 성능이 향상됨
- 파티션은 각각의 파티션 별로 독립적으로 관리 됨(파티션 별로 백업하고 복구가 가능하면 파티션 전용 인덱스 생성도 가능함)
- 파티션은 Oracle 데이터베이스의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능함
- 데이터를 조회할 때 데이터의 범위를 줄여서 성능을 향상시킴
2. Range Partition
- Range Partition은 테이블의 칼럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 것
3. List Partition
- List Partition은 특정 값을 기준으로 분할하는 방법
4. Hash Partition
- Hash Partition은 데이터베이스 관리 시스템이 내부적으로 해시 함수를 사용해서 데이터를 분할함
- 결과적으로 데이터베이스 관리 시스템이 알아서 분할하고 관리하는 것
5. Composite Partition
- 여러 개의 파티션 기법을 조합해서 사용하는 것
6. 파티션 인덱스
- Global Index: 여러 개의 파티션에서 하나의 인덱스를 사용함
- Local Index: 해당 파티션 별로 각자의 인덱스를 사용함
- Prefixed Index: 파티션 키와 인덱스 키가 동일함
- Non Prefixed Index: 파티션 키와 인덱스 키가 다름
1. 옵티마이저(Optimizer)
-
옵티마이저는 SQL을 어떻게 실행할 것인지를 계획하게 됨
-
즉, SQL 실행 계획(Execution Plan)을 수립하고 SQL을 실행
-
옵티마이저는 SQL의 실행 계획을 수립하고 SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어
-
동일한 결과가 나오는 SQL도 어떻게 실행하느냐에 따라서 성능이 달라짐
-
따라서 옵티마이저의 실행 계획은 SQL 성능에 아주 중요한 역할을 함
2. 옵티마이저 특징
-
옵티마이저는 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 산정함
-
옵티마이저는 여러 개의 실행 계획 중에서 최저비용을 가지고 있는 계획을 선택해서 SQL을 실행함
3. 옵티마이저의 필요성
-
SQL 개발자가 작성한 SQL문을 어떻게 실행하느냐에 따라 성능이 달라짐
-
만약 옵티마이저가 비효율적으로 실행 계획을 수립하면, SQL개발자는 SQL을 개선해야 함
-
옵티마이저에게 실행 계획을 변경하도록 요청할 수가 있는데 이때 힌트(HINT)를 사용함
4. 옵티마이저 실행 계획 확인
-
옵티마이저는 SQL 실행 계획을 PLAN_TABLE에 저장함
-
SQL개발는 PLAN_TABLE을 조회해서 실행 계획을 확인할 수 있음
'SQL 공부' 카테고리의 다른 글
(SQLD)옵티마이저 종류/인덱스(Index)/실행 계획(Execution Plan)/옵티마이저 조인(Optimizer Join) (0) | 2020.09.11 |
---|---|
(SQLD)그룹함수/윈도우 함수(Window Function) (0) | 2020.09.07 |
(SQLD)계층형 조회(Connect by)/서브쿼리(Subquery) (0) | 2020.09.05 |
(SQLD)조인(Join) (0) | 2020.09.03 |
(SQLD)TCL(Transaction Control Language) (0) | 2020.09.01 |