Chat now with support
Chat with Support

SQL Optimizer for Oracle 9.2.2 - User Guide (Korean)

SQL Optimizer 소개

SQL Optimizer for Oracle 정보

SQL Optimizer for Oracle®은 SQL 최적화 프로세스를 자동화하고 SQL 문의 성능을 최대화합니다. SQL Optimizer for Oracle®은 데이터베이스 객체, 파일 또는 Oracle SGA(System Global Area)에 있는 SQL 문 컬렉션의 SQL 문을 분석, Rewrite 및 평가합니다. SQL Optimizer에서 Problematic SQL 문을 식별하면 SQL을 최적화하고 최적화된 문장을 포함하는 대안 코드를 제공합니다.

SQL Optimizer은(는) 또한 완벽한 인덱스 최적화 및 Plan 변경 분석 솔루션을 제공합니다. 또한 여러 SQL 문 또는 SQL 작업 부하에 대한 권장 인덱스를 제공하고, 인덱스 영향 분석을 시뮬레이션하고, 대안 SQL Execution Plan을 생성합니다.

SQL Optimizer는 다음 모듈로 구성됩니다.

Optimize SQL

Optimize SQL에는 SQL Rewrite 모드와 Plan Control 모드가 있습니다.

SQL Rewrite 모드 설명
Optimize SQL Statements

SQL Optimizer의 인공 지능 엔진을 사용하여 SQL 구문 규칙을 실행하고 Oracle 최적화 힌트를 적용하여 의미론적으로 동일한 대체 SQL 문을 작성합니다. 또한 데이터베이스 환경에서 테스트할 사용자 정의 대체 SQL 문을 작성할 수 있습니다. 자세한 내용은 온라인 도움말에서 "About Optimizing SQL"을 참조하십시오.

Test Run SQL Alternatives

대체 SQL 문을 테스트 실행하여 실행 통계를 확인합니다. 이를 통해 데이터베이스 환경에 가장 적합한 SQL 문을 찾을 수 있는 실행 시간을 알 수 있습니다. 자세한 내용은 온라인 도움말의 "실행 시나리오"에서 확인하십시오.

Generate Index Alternatives

SQL 문 구문 및 데이터베이스 구조를 분석하여 성능을 향상시키는 대체 인덱스를 제공합니다. SQL Optimizer가 가상 인덱스를 사용하여 실제로 데이터베이스에서 인덱스를 생성하지 않고 대체 인덱스를 생성합니다. 자세한 내용은 온라인 도움말의 "About Index Generation"에서 확인하십시오.

Test for Scalability Benchmark Factory™를 통해 발생 가능한 작업 부하를 시뮬레이션하여 SQL 문 성능을 테스트합니다. 자세한 내용은 온라인 도움말의 "Test for Scalability"에서 확인하십시오.
Incorporate Best Practices 데이터베이스 성능을 향상시키기 위한 일반적인 기술 모범 사례를 포함합니다. 자세한 내용은 온라인 도움말의 "Best Practices"에서 확인하십시오.
Plan Control 모드 설명
Generate Execution Plan Alternatives 원본 소스 코드를 변경하지 않으면서 SQL 문에 대한 대체 Execution Plan을 생성합니다. 자세한 내용은 온라인 도움말의 "Generate Execution Plan Alternatives"에서 확인하십시오.
Deploy Baselines

대체 Execution Plan의 기준을 작성하고 이러한 기준을 배포하여 최적의 데이터베이스 성능을 유지합니다. 자세한 내용은 온라인 도움말의 "Deploy Baselines"에서 참조하십시오.

Optimize Indexes

Optimize Indexes는 SQL 작업 부하 또는 SQL 문 그룹을 분석하고 SQL 문의 작업 부하 또는 그룹에 가장 적합한 인덱스 세트를 결정합니다. 자세한 내용은 온라인 도움말의 "About Optimize Indexes"에서 확인하십시오.

Batch Optimize

Batch Optimize는 일괄 처리를 위해 Foglight Performance Investigator 리포지토리에 저장된 파일, 데이터베이스 객체, SQL 텍스트 또는 문을 전송합니다. Batch Optimize는 SQL 문을 검색하거나 추출하고 문장을 최적화하며 대체 문장을 테스트하여 데이터베이스 환경에서 가장 뛰어난 성능을 제공할 수 있는 SQL 문을 찾습니다. 자세한 내용은 온라인 도움말의 "About Batch Optimize"에서 확인하십시오.

Scan SQL

Scan SQL이 원본 코드 및 데이터베이스 객체에서 실행하지 않고 Problematic SQL 문을 식별합니다. 그런 다음 Scan SQL은 Problematic SQL 문을 분석하고 성능 수준에 따라 분류합니다. 자세한 내용은 온라인 도움말의 "About Scanning SQL"에서 확인하십시오.

Inspect SGA

Inspect SGA는 Oracle SGA에서 SQL 문을 분석합니다. SQL 성능 검토를 위해 SQL 문 및 실행 통계를 검색하는 데 사용되는 기준을 지정합니다. 자세한 내용은 온라인 도움말의 "About Inspect SGA"에서 확인하십시오.

Analyze Impact

Analyze Impact에서는 SQL 문에 대한 Execution Plan 및 Oracle 비용 변경 사항을 추적함으로써 데이터베이스 변경이 SQL 작업 부하에 미치는 영향을 평가할 수 있습니다. 매개 변수 변경과 새로운 인덱스 작성이 성능에 미치는 영향을 평가하기 위해 영향 분석을 실행할 수 있습니다. 또한 동일한 응용 프로그램을 실행하는 두 개의 다른 데이터베이스에 대한 비교도 실행할 수 있습니다. 자세한 내용은 온라인 도움말의 "About Analyze Impact"에서 확인하십시오.

Manage Plans

Manage Plans는 SQL 문 성능 향상에 사용되는 저장 기준 및 아웃라인을 구성합니다. 자세한 내용은 온라인 도움말의 "About Managing Plans"에서 참조하십시오.

SQL 최적화 워크플로

SQL 최적화 워크플로는 SQL 문이 데이터베이스 환경에서 최적의 성능을 발휘하도록 보장합니다.

절차 설명
Identify Problematic SQL

Batch Optimize는 데이터베이스 객체에서 포함된 SQL 문을 추출합니다. 문장을 추출한 후에는 Execution Plan 작업을 분석하고 발생할 수 있는 성능 병목 현상을 식별합니다.

참고:

  • Inspect SGA를 사용하여 Dynamic SQL 문을 캡처할 수 있습니다. 캡처한 동적 SQL 문을 Inspector 파일에 저장하고 Batch Optimize를 사용하여 문장을 추출합니다.

  • Scan SQL을 사용하여 포함된 SQL 문을 추출할 수도 있습니다.
Optimize SQL Statements

Batch Optimize가 Problematic SQL 문을 식별하면 이러한 문장을 자동으로 최적화하고 고유한 Execution Plan으로 대체 문을 생성합니다. Batch Optimize는 SQL 문 구문과 데이터베이스 구조를 분석하여 대체 문을 생성합니다. 최적화 프로세스 중에 힌트를 사용할 수도 있습니다.

참고: Optimize SQL에서 SQL Rewrite 모드를 사용하여 Scan SQL을 통해 추출된 SQL 문을 최적화할 수도 있습니다.

Test Run SQL Alternatives

Batch Optimize는 대체 문장을 생성한 후 대체 문장을 자동으로 테스트하고 데이터베이스 환경에 가장 적합한 문장을 제공합니다.

참고: Batch Optimize는 SQL 최적화 프로세스를 자동화하므로 생성된 가장 적합한 대체 문장만 제공됩니다. Optimize SQL로 문장을 전송하여 사용 가능한 모든 대체 문장을 볼 수 있습니다.

Compare SQL Alternatives

Batch Optimize는 원본 SQL 문의 SQL 텍스트 및 실행 계획과 최상의 대체 문장을 비교합니다.

참고: Optimize SQL로 문장을 전송할 경우 원본 SQL 문과 사용 가능한 대체 문장을 비교할 수 있습니다.

Replace Problematic SQL Statements Batch Optimize는 원본 소스 코드를 대체할 수 있는 스크립트를 작성합니다.
Generate Index Alternatives

SQL 문을 최적화하는 것 외에 Optimize SQL에서 문장에 대한 대체 인덱스를 생성할 수 있습니다. Optimize Indexes를 사용하여 SQL 문 그룹과 SQL 작업 부하에 대한 새 인덱스를 생성할 수 있습니다.

Generate Execution Plan Alternatives Optimize SQL의 Plan Control 모드를 사용하여 원본 소스 코드를 변경하지 않고도 SQL 문에 대한 대체 Execution Plan을 생성할 수 있습니다. Plan Control 모드는 SQL 문에 가장 적합한 실행 계획을 찾은 후 기준으로 배포합니다.
성능 변경 사항 분석 Analyze Impact에서 인덱스와 매개 변수 변경과 같은 특정 변경이 SQL 문의 성능에 미치는 영향을 평가합니다.

 

데이터베이스 권한

Oracle 데이터베이스 권한은 개별 사용자의 액세스를 제한합니다. 다음은 특정한 Oracle 데이터베이스 권한이 필요한 SQL Optimizer의 기능을 요약한 것입니다.

모듈

기능

권한

모든 모듈

Trace Setup 옵션:

Oracle 추적 통계 컬렉션 활성화

ALTER SESSION 권한이 필요합니다.

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SESSION

SYS.V_$PROCESS

모든 모듈 DBMS_XPLAN 검색 SYS.DBMS_XPLAN 패키지에 대한 액세스 권한이 필요합니다.
모든 모듈 General Oracle 8 이상용 Oracle init 매개 변수 O7_DICTIONARY_ACCESSIBILITY가 false로 설정되어 있으면 SELECT ANY TABLE 권한이 있더라도 SYS의 개체에 액세스할 수 없습니다. 이 경우 SYS의 객체에 액세스하기 위해 SELECT ANY DICTIONARY 권한 또는 SELECT_CATALOG_ROLE이 필요합니다.
Optimize SQL(SQL Rewrite) 실행 중인 SQL에 대해 세션 매개 변수 변경

SYS.V_$PARAMETER 뷰 액세스 권한이 필요합니다.

가상 인덱스 생성 Oracle 8i 이상이 필요합니다.
SQL에 대한 기존 변환(Translation) 확인

Oracle 12c 이상이 필요합니다.

SYS.ALL_SQL_TRANSLATIONS 뷰에 대한 액세스 권한이 필요합니다.

SQL Translation 프로파일 만들기

Oracle 12c 이상이 필요합니다.

CREATE SQL TRANSLATION PROFILE 권한이 필요합니다.

아웃라인 배포

Oracle 8i 이상이 필요합니다.

CREATE ANY OUTLINE 및 DROP ANY OUTLINE 권한이 필요합니다.

다음 뷰에 대한 액세스 및 UPDATE 권한이 필요합니다.

OUTLN.OL$HINTS

OUTLN.OL$

OUTLN.OL$NODES

SQL Translation 등록

Oracle 12c 이상이 필요합니다.

SYS.DBMS_SQL_TRANSLATOR 패키지에 대한 액세스 권한이 필요합니다.

SYS.ALL_SQL_TRANSLATION_PROFILES 뷰에 대한 액세스 권한이 필요합니다.

Optimize SQL(Plan Control) 데이터베이스 연결 열기 Oracle 11g 이상이 필요합니다.
Execution Plan 검색, Alternative Plan 생성

ADMINISTER SQL MANAGEMENT OBJECT 권한이 필요합니다.

다음 패키지에 대한 액세스 권한이 필요합니다.

SYS.DBMS_SQL이 필요합니다.

SYS.DBMS_SPM

SYS.DBMS_XPLAN

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.DBA_SQL_PLAN_BASELINES

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_ NEWLINES

Optimize SQLBatch Optimize

Execution Method 옵션:

Run on Server 설정

SYS.DBMS_SQL 패키지에 대한 액세스 권한이 필요합니다.
실행 시간 통계 검색

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$MYSTAT

SYS.V_$STATNAME

SYS.V_$PARAMETER

Actual Plan 검색

ALTER SESSION 권한이 필요합니다.

SYS.DBMS_XPLAN 패키지에 대한 액세스 권한이 필요합니다.

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SQLAREA

SYS.V_$ SQL_PLAN_STATISTICS_ALL

SYS.V_$SESSION

데이터베이스의 바인드 값 캡처

Oracle 10g 이상이 필요합니다.

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SQLAREA

SYS.V_$SQL_BIND_CAPTURE

Optimize Indexes 인덱스 권장

Oracle 8i 이상이 필요합니다.

SYS.V_$SESSION 뷰에 대한 액세스 권한이 필요합니다.

AWR에 액세스

Oracle 10g 이상이 필요합니다.

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.DBA_HIST_SNAPSHOT

SYS.DBA_HIST_SQLTEXT

SYS.DBA_HIST_SQLSTAT

Workload Repository에 대한 제어 정보 표시

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS. DBA_HIST_WR_CONTROL

Workload Repository에 대한 SQL 요약 표시

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS. DBA_HIST_SQL_SUMMARY

Foglight PI Repository에 액세스

다음 테이블에 대한 액세스 권한이 필요합니다.

QUEST_SC_ACTION_DIM

QUEST_SC_CLIENT_INFO_DIM

QUEST_SC_MODULE_DIM

QUEST_SC_SQL_STAT_FACT

QUEST_SC_SQL_SYNTAX_DIM

QUEST_CTRL_PYRAMID_LEVELS

QUEST_DB_USER_DIM

QUEST_INSTANCE_DIM

QUEST_PROGRAM_DIM

QUEST_TIME_DIM

SGA에 액세스 SYS.V_$SQLAREA 뷰에 대한 액세스 권한이 필요합니다.

Inspect SGA

수집할 SQL: SQL 영역에서 실행된 SQL 

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_NEWLINES(또는 Oracle 버전에 따라 SYS.V_$SQLTEXT)

Oracle 9 이상에서는 SYS.V_$SQL_PLAN 뷰에 대한 액세스 권한이 필요합니다.

수집할 SQL: 현재 실행 중인 SQL

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$OPEN_CURSOR

SYS.V_$SESSION

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_NEWLINES(또는 Oracle 버전에 따라 SYS.V_$SQLTEXT)

Oracle 9 이상에서는 SYS.V_$SQL_PLAN 뷰에 대한 액세스 권한이 필요합니다.

Flush Oracle 공유 풀

ALTER SYSTEM 권한이 필요합니다.

Execution Plan 정보

Oracle 9 이상에서는 SYS.V_$SQL_PLAN 뷰에 대한 액세스 권한이 필요합니다.

세션별 모니터링 SYS.V_$SESSION 뷰에 대한 액세스 권한이 필요합니다.

Manage Plans

(Baselines Management)

Baselines Management 세션 또는 데이터베이스 연결 열기 Oracle 11g 이상이 필요합니다.
Baseline 보기 SYS.DBA_SQL_PLAN_BASELINES 뷰에 대한 액세스 권한이 필요합니다.
Baseline Plan 보기

SYS.DBA_SQL_PLAN_BASELINES 뷰에 대한 액세스 권한이 필요합니다.

SYS.DBMS_XPLAN 패키지에 대한 액세스 권한이 필요합니다.

Baseline 가져오기, 내보내기 및 마이그레이션

ADMINISTER SQL MANAGEMENT OBJECT 및 CREATE TABLE 권한이 필요합니다.

SYS.DBA_SQL_PLAN_BASELINES 뷰에 대한 액세스 권한이 필요합니다.

SYS.DBMS_SPM 패키지에 대한 액세스 권한이 필요합니다.

Baseline 구성 값 보기 및 수정

Oracle 매개 변수 값 얻기

OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES

및 OPTIMIZER_USE_SQL_PLAN_BASELINES

ADMINISTER SQL MANAGEMENT OBJECT 및 ALTER SYSTEM 권한이 필요합니다.

SYS.DBMS_SPM 패키지에 대한 액세스 권한이 필요합니다.

다음 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SYSTEM_PARAMETER

SYS.DBA_SQL_MANAGEMENT_CONFIG

SYS.DBA_DATA_FILES

Manage Plans

(Outlines Management)

Outlines Management 세션 또는 데이터베이스 연결 열기 Oracle 8i 이상이 필요합니다.
Outline 보기 OUTLN.OL$HINTS(SELECT 전용) 및 OUTLN.OL$(SELECT 전용) 권한이 필요합니다.
Outline 구성 값 수정 ALTER SYSTEM 및 OUTLN.OL$(SELECT 전용) 권한이 필요합니다.
Outline 수정

DROP ANY OUTLINE 및 ALTER ANY OUTLINE 권한이 필요합니다.

SYS.OUTLN_PKG 패키지에 대한 액세스 권한이 필요합니다.

Analyze Impact

 

인덱스 영향 평가에 사용할 가상 인덱스

Oracle 8i 이상이 필요합니다.

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SESSION

매개 변수 영향 평가에 사용할 세션 매개 변수 변경

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$PARAMETER

AWR 액세스

Oracle 10g 이상이 필요합니다.

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.DBA_HIST_SNAPSHOT

SYS.DBA_HIST_SQLTEXT

SYS.DBA_HIST_SQLSTAT

Workload Repository에 대한 제어 정보 표시

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS. DBA_HIST_WR_CONTROL

Workload Repository에 대한 SQL 요약 표시

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS. DBA_HIST_SQL_SUMMARY

Foglight PI Repository에 액세스

다음 테이블에 대한 액세스 권한이 필요합니다.

QUEST_SC_ACTION_DIM

QUEST_SC_CLIENT_INFO_DIM

QUEST_SC_MODULE_DIM

QUEST_SC_SQL_STAT_FACT

QUEST_SC_SQL_SYNTAX_DIM

QUEST_CTRL_PYRAMID_LEVELS

QUEST_DB_USER_DIM

QUEST_INSTANCE_DIM

QUEST_PROGRAM_DIM

QUEST_TIME_DIM

SGA 액세스

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.V_$SQLAREA

데이터베이스 영향을 비교하기 위한 데이터베이스 정보 표시

다음 시스템 뷰에 대한 액세스 권한이 필요합니다.

SYS.PRODUCT_COMPONENTS_VERSION

SYS.V_$PARAMETER

SYS.NLS_SESSION_PARAMETERS

SYS.NLS_INSTANCE_PARAMETERS

SYS.NLS_DATABASE_PARAMETERS

SYS.V_$SGAINFO

SYS.V_$DATABASE

SYS.V_$INSTANCE

SYS.V_$STATISTICS_LEVEL

SYS.V_$OPTION

Self Service Tools
Knowledge Base
Notifications & Alerts
Product Support
Software Downloads
Technical Documentation
User Forums
Video Tutorials
RSS Feed
Contact Us
Licensing Assistance
Technical Support
View All
Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating