문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ T6, T7
문서번호ㅣTADTI127
개요
본 문서에서는 Optimizer와 관련된 파라미터들에 대해서 설명합니다.
방법
- CURSOR_SHARING
SQL 조건절에 있는 리터럴 값들을 변수로 전환한 후 파싱하여 커서를 공유하도록 설정하는 파라미터입니다.
리터럴 쿼리가 많아 메모리에서 SQL 및 실행계획이 Cache Out 될 경우 효과적입니다.
리터럴 쿼리에 의한 하드 파싱 부하가 심한 경우라면 일시적으로 FORCE 옵션의 사용으로 하드 파싱 부하를 줄일 수 있습니다.
하지만 모든 리터럴이 바인드 변수화되어 실행계획이 바뀔 수 있고 컬럼의 히스토그램 정보를 이용할 수 없으므로 사용에 주의해야 하며 애플리케이션에서 바인드 변수를 사용하도록 수정한 후 옵션을 EXACT로 변경하여 사용합니다.
CURSOR_SHARING 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | String |
| 기본값 | "EXACT"(설정 가능값 : {EXACT|FORCE})
|
| 속성 | Optional, Adjustable, Dynamic, System |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
2. OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES
반복적으로 입력된 SQL에 대해서 capture 하여 저장할지에 대한 활성화 여부를 설정하는 파라미터입니다.
OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
3. OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES_DURATION
반복적으로 SQL이 입력될 때 설정된 시간 내에 들어온 동일한 SQL은 capture 하지 않도록 시간을 설정하는 파라미터입니다.
OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES_DURATION 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Integer |
| 기본값 | 0(설정 가능값 : 0~) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일 - ALTER문 |
4. OPTIMIZER_LOG_OUTLINE
Plan Outline을 로깅할지 여부를 설정하는 파라미터입니다.
OPTIMIZER_LOG_OUTLINE 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
5. OPTIMIZER_MODE
SQL 쿼리 옵티마이저의 모드를 설정하는 파라미터입니다.
OPTIMIZER_MODE 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | String |
| 기본값 | "ALL_ROWS"(설정 가능값 : {FIRST_ROWS_[1 | 10 | 100 | 1000] | ALL_ROWS}) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
Optimizer의 Cost 계산 동작을 결정하며 다음과 같이 다섯 가지 모드가 있습니다.
- FIRST_ROWS_1
- FIRST_ROWS_10
- FIRST_ROWS_100
- FIRST_ROWS_1000
- ALL_ROWS
FIRST_ROWS_n은 n개의 Row를 읽어들일 때 최적인 Plan을 선택하게 하는 것이며, ALL_ROWS는 결과 전체 Row를 읽어들일 때 최적의 Plan을 선택하게 하는 것입니다.
쿼리 결과 Row 개수가 n보다 많더라도 클라이언트에서 n개의 Row만 Fetch한다면 FIRST_ROWS_n 모드로 변경하도록 합니다.
6. OPTIMIZER_TRACE
옵티마이저 Trace Dump 사용 여부를 설정하는 파라미터입니다.
OPTIMIZER_TRACE 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
7. OPTIMIZER_USE_INVISIBLE_INDEXES
Invisible Index의 사용 여부를 설정하는 파라미터입니다.
OPTIMIZER_USE_INVISIBLE_INDEXES 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일 - ALTER문 |
8. OPTIMIZER_USE_SQL_PLAN_BASELINES
SQL이 입력되었을 때 1에서 capture된 baseline을 사용할지 여부를 설정하는 파라미터입니다.
OPTIMIZER_USE_SQL_PLAN_BASELINES 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|
9. OPTIMIZER_USE_SQL_PROFILES
특정 프로파일을 사용할지 여부를 설정하는 파라미터입니다.
켜져 있으면 수행하는 모든 SQL에 대해서 정의된 SQL Profile이 있는지 탐색 후 적용됩니다.
부가적으로 autotrace에 출력되는 SQL plan에 "LPN Number Information"와 "Note"에 적용된 SQL profile 이름이 명시됩니다.
OPTIMIZER_USE_SQL_PROFILES 파라미터의 세부 내용은 다음과 같습니다.
| 구분 | 설명 |
| 타입 | Boolean |
| 기본값 | N(설정 가능값 : Y,N) |
| 속성 | Optional, Adjustable, Dynamic, Session |
| 설정방법 | TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. |
| 문법 | - TIP 파일
|