mobile background

자료실

[Quest SQL Optimizer for Oracle] 인덱스를 이용한 SQL 튜닝 자동화

참고 : 이 내용은 Quest SQL Optimizer for Oracle 9.3(Toad for Oracle 2018 R2 (V13.1, Xpert Edition 이상))버전 기반으로 작성되었습니다.



Quest SQL Optimizer for Oracle 참고사항


Quest SQL Optimizer for Oracle은 오라클에서 사용하는 SQL의 튜닝 과정을 자동화하고 SQL 성능을 개선하는데 활용할 수 있습니다.


이 중에서 SQL 재작성을 통한 SQL 성능 개선은 SQL 튜닝 시 일반적으로 많이 사용하는 방법으로

Quest SQL Optimizer를 이용하면 복잡하고 반복적인 튜닝 과정을 단순화하고 자동화할 수 있습니다.

(SQL Rewrite 튜닝 방법 - 커뮤니티 자료실에서 “SQL문장 변경을 이용한 SQL튜닝 자동화” 자료 참조)


Quest SQL Optimizer for Oracle프로그램은 Toad for Oracle Xpert 에디션 이상(Xpert, Developer, DBA)에 기본적으로 포함되어 있고,

토드 프로그램과 상관없이 Quest SQL Optimizer for Oracle 프로그램만 별도로 구매 가능합니다.

이 프로그램은 다른 토드 번들 프로그램과 다르게 바탕화면에 아이콘이 자동으로 생성되지 않기 때문에

[그림1]과 같이 프로그램 목록에서 선택해서 실행하거나 바탕화면에 추가로 아이콘을 생성해 주어야 합니다.



 



Quest SQL Optimizer에서 SQL 튜닝을 할 때 인덱스를 이용한 튜닝을 하기 위해서는 메뉴 탭에서 [Optimize SQL]을 선택합니다.

인덱스를 추가해서 SQL문장을 튜닝하려면 SQL 문장 변경을 이용한 SQL튜닝과 마찬가지로, [그림 2]에서와 같이 SQL Rewrite 버튼을 클릭하고

[그림3]과 같이 SQL Rewrite 튜닝 화면을 연 후, 데이터베이스 접속을 위해 화면 왼쪽 위에 [Connection] 또는 [Connect] 버튼을 클릭합니다.

[그림 2. Quest SQL Optimizer의 Optimize SQL메뉴]


 

[그림 3. SQL Rewrite 초기 화면]




[그림4]와 같이 SQL을 튜닝할 대상 데이터베이스의 연결 정보를 입력한 후 정상적으로 접속되면 SQL Rewrite 화면에서

Connect 버튼( )이접속한 데이터베이스 정보( )로 변경됩니다.


[그림 4. 데이터베이스 접속]




인덱스를 이용한 SQL 튜닝을 자동화하기 위해서는 아래와 같은 절차대로 진행하면 됩니다.

1. [그림5]와 같이 “Alternative Details” 부분에 튜닝할 SQL 입력

2. “Index” 버튼( )을 클릭해서 “Alternative Details”에 입력한 SQL을 튜닝하기 위한 Index 안 생성 (실제 인덱스를 생성하지 않음)

3. “Alternatives” 리스트에서 튜닝 가능성이 높은 Index 안 또는 상위 4~5개(Index1~Index4,5) 인덱스 안 선택

4. “Test Run” 아이콘( )에서 확장 부분( )을 클릭하고 “Test Run ? Selected”를 선택해서

데이터베이스에 실제로 Index를 생성하고 SQL 성능 테스트

(테스트가 끝나면 사용한 인덱스는 자동으로 삭제됨)



[그림 5. SQL 튜닝을 위한 Index 안 생성 단계]




5. [그림6]과 같이 각 인덱스가 생성될 테이블스페이스 지정


[그림 6. 인덱스 생성 DDL 스크립트 - 테이블 스페이스 지정]



6. [그림7]과 같이 SQL 튜닝을 위한 각각의 Index 안에 대한 SQL 실행 결과 확인


7. 성능이 개선된 Index 안을 선택해서 Index 컬럼, 유형 등 확인

[그림 7. 튜닝 대안 SQL의 실행 결과 확인]




[그림7]의 실행 결과에서  로 표시된 Index4 안을 생성했을 때 튜닝 대상 SQL의 실행시간이 가장 빠릅니다.

만약에 6번 절차까지 실행한 Index 안의 실행 결과가 만족스럽지 않을 경우, 아직 실행하지 않은 인덱스 안을 추가로 선택해서

위 3,4,5,6절차를 반복해서 실행하고 튜닝 대상 SQL의 성능을 개선하는 Index를 찾습니다.


퀘스트소프트웨어코리아(주)

서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600

전자 메일 KoreaMarketing@quest.com 


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB


퀘스트소프트웨어코리아(주) 서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600 | 전자 메일 KoreaMarketing@quest.com


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB