데이터베이스 엔진 튜닝 관리자 기능
데이터베이스 엔진 튜닝 관리자는 초보 및 숙련된 데이터베이스 관리자가 쿼리 성능 향상을 위해 데이터베이스를 튜닝할 수 있는 새 기능을 제공합니다. 다음 섹션에서는 데이터베이스 엔진 튜닝 관리자의 새 기능에 대해 설명합니다.
향상된 작업 구문 분석
임시 테이블과 같은 일시적인 테이블을 참조하는 일괄 처리를 처리합니다.
이벤트를 구문 분석할 수 없기 때문에 튜닝을 종료하지 않습니다. 대신에 이벤트를 튜닝 로그에 기록한 다음 다른 이벤트의 튜닝을 계속합니다.
사용자 정의 함수를 참조하는 쿼리를 구문 분석하고 튜닝합니다.
여러 데이터베이스를 튜닝할 때 필수적인 추적의 모든 USE 문을 처리합니다.
작업에서 LoginName 열을 사용하여(추적 작업에서 사용할 수 있는 경우) 이벤트를 실행하는 사용자의 컨텍스트에서 이벤트를 정확하게 튜닝할 수 있습니다.
트리거의 문을 튜닝합니다.
향상된 확장성
작업 압축이 사용되므로 데이터베이스 엔진 튜닝 관리자는 우수한 튜닝 권장 구성 결과를 생성하면서도 튜닝에 소요되는 시간을 줄일 수 있습니다.
중복 통계 작성을 방지하는 알고리즘이 사용되므로 튜닝 도중에 발생하는 I/O 수가 줄어듭니다.
통합 튜닝
데이터베이스 엔진 튜닝 관리자는 필터링된 인덱스를 비롯하여 다양한 유형의 물리적 디자인 구조(인덱스, 인덱싱된 뷰, 분할)에 의해 제공되는 성능의 장단점을 고려할 수 있습니다. 구조가 다양하기는 하지만 기능이 공통되므로 특정 쿼리에 대한 실행 비용이 줄어들 수 있습니다. 여러 디자인 구조의 통합 구성을 고려하는 기능을 통해 데이터베이스 엔진 튜닝 관리자는 보다 우수한 권장 구성을 제공할 수 있습니다. 예를 들어 테이블 집합에서 클러스터형 인덱스만 고려한 다음 동일한 테이블 집합에서 수평 범위 분할까지 고려할 경우 이러한 두 개의 물리적 디자인 구조가 어떻게 함께 작동하는지 알 수 없습니다. 이러한 구조가 함께 작동하는 방법을 이해하려면 튜닝 도구에서 통합 튜닝을 수행해야 합니다.
여러 데이터베이스 튜닝
응용 프로그램은 흔히 작업을 완료하기 위해 여러 데이터베이스에 액세스하므로 작업은 여러 데이터베이스의 개체를 참조하기도 합니다. 데이터베이스 엔진 튜닝 관리자는 MicrosoftSQL Server 2000의 인덱스 튜닝 마법사와 달리 여러 데이터베이스를 동시에 튜닝할 수 있습니다. 사용자가 튜닝할 데이터베이스 집합을 지정하면 데이터베이스 엔진 튜닝 관리자는 선택된 모든 데이터베이스에 대해 권장 구성을 생성합니다. 이 기능에 대한 자세한 내용은 여러 개의 데이터베이스 튜닝을 참조하십시오.
튜닝 오버헤드를 테스트 서버로 이전
대량 작업을 튜닝하면 튜닝되는 서버에 상당한 오버헤드가 발생할 수 있습니다. 이는 데이터베이스 엔진 튜닝 관리자가 일반적으로 튜닝 프로세스 도중에 쿼리 최적화 프로그램을 여러 번 호출해야 하기 때문입니다. 프로덕션 서버와 함께 테스트 서버를 사용하여 이 문제를 해결합니다.
이 시나리오에서는 프로덕션 서버 환경을 복제하는 테스트 서버를 튜닝할 수 있습니다. 테스트 서버 튜닝의 결과로서 데이터베이스 디자인 권장 구성을 받은 후에는 유지 관리 기간 동안에 프로덕션 서버에 권장 구성을 구현할 수 있습니다.
기존에는 테스트 서버를 통해 프로덕션 서버에서 테스트 서버로 모든 데이터를 복사하고 테스트 서버를 튜닝한 다음 두 컴퓨터의 하드웨어 차이점에 대해 얻은 권장 구성을 조정하였습니다. 테스트 컴퓨터에 데이터를 복사하지 않고도 또는 두 개의 컴퓨터 하드웨어 집합이 동일하지 않더라도 데이터베이스 엔진 튜닝 관리자가 테스트 서버를 사용할 수 있기 때문에 시간과 리소스가 절약됩니다. 대신에 데이터베이스 엔진 튜닝 관리자는 메타데이터, 통계 및 하드웨어 매개 변수를 프로덕션 서버에서 테스트 서버로 가져옵니다. 그런 다음 데이터베이스 엔진 튜닝 관리자가 테스트 서버에서 대량의 튜닝 작업을 수행하면 사용자는 일반적인 유지 관리 기간 동안에 프로덕션 서버에 이러한 작업의 결과를 구현할 수 있습니다. 이 기능에 대한 자세한 내용은 프로덕션 서버 튜닝 로드 줄이기를 참조하십시오.
명령 프롬프트 유틸리티 및 그래픽 사용자 인터페이스 도구
데이터베이스 엔진 튜닝 관리자는 다음 두 개의 사용자 인터페이스를 제공합니다.
데이터베이스 엔진 튜닝 관리자 기능을 스크립팅과 쉽게 통합할 수 있게 하는 dta 명령 프롬프트 유틸리티
튜닝 세션과 결과를 쉽게 볼 수 있게 하는 데이터베이스 엔진 튜닝 관리자 GUI(그래픽 사용자 인터페이스) 도구
삭제 전용 튜닝
물리적 디자인 구조가 시간이 지남에 따라 데이터베이스에서 누적될 수 있으므로 데이터베이스 관리자는 더 이상 유용하지 않은 이러한 구조를 삭제할 수 있는 방법이 필요합니다. 삭제 전용 튜닝 옵션은 전혀 사용되지 않거나 특정 작업에 거의 도움이 되지 않은 기존의 물리적 디자인 구조를 식별하는 데 유용합니다. dta 명령 프롬프트 유틸리티를 사용할 때 -fx 인수를 사용하여 이 튜닝 옵션을 지정할 수 있습니다. GUI 사용 시에는 튜닝 옵션 탭에서 기존 PDS의 사용률만 평가를 선택하여 이 옵션을 지정할 수 있습니다.
이 옵션이 사용되면 데이터베이스 엔진 튜닝 관리자는 새 구조를 전혀 제안하지 않으므로 인덱스, 인덱싱된 뷰 또는 파티션을 추가하는 다른 옵션과 함께 이 옵션을 사용할 수 없습니다. 또한 기존의 모든 구조를 유지하는 옵션과 함께 삭제 전용 튜닝 옵션을 사용할 수 없습니다. 데이터베이스 엔진 튜닝 관리자와 함께 사용할 수 있는 튜닝 옵션에 대한 자세한 내용은 사용 가능한 튜닝 옵션을 참조하십시오.
XML 지원
데이터베이스 엔진 튜닝 관리자 GUI 및 dta 명령 프롬프트 유틸리티를 사용하여 수행할 수 있는 모든 튜닝 작업은 데이터베이스 엔진 튜닝 관리자 XML 입력 파일에서 정의할 수 있습니다. XML 입력 파일은 게시된 데이터베이스 엔진 튜닝 관리자 XML 스키마를 사용하며 이 스키마는 MicrosoftSQL Server 설치 디렉터리의 다음 위치에서 찾을 수 있습니다.
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd
Microsoft 웹 사이트의 Database Engine Tuning Advisor Schema에서도 스키마를 다운로드할 수 있습니다.
XML 입력 파일을 사용하면 데이터베이스 튜닝 시에 자주 사용하는 XML 도구를 사용할 수 있으며 경험이 많은 데이터베이스 관리자는 더 유연하게 작업을 수행할 수 있습니다. 예를 들어 XML 입력 파일을 사용하면 기존 및 가상 물리적 디자인 구조(인덱스, 인덱싱된 뷰, 파티션)의 구성을 지정한 다음 dta 명령 프롬프트 유틸리티를 사용하여 해당 구성이 이미 구현된 것처럼 데이터베이스를 튜닝할 수 있습니다. 이렇게 하면 튜닝 전에 새 구성을 구현하는 오버헤드를 초래하지 않고 "가정(what-if)" 분석을 수행할 수 있습니다. 데이터베이스 엔진 튜닝 관리자 XML 지원에 대한 자세한 내용은 XML 입력 파일 참조(데이터베이스 엔진 튜닝 관리자), 튜닝을 위해 XML 입력 파일 사용 및 데이터베이스 엔진 튜닝 관리자를 사용한 탐구 분석을 참조하십시오.
사용자 지정 구성 및 "가정(What-if)" 분석 지원
데이터베이스 엔진 튜닝 관리자를 사용하면 물리적 디자인 구조(인덱스, 인덱싱된 뷰 및 분할 전략)의 가상 구성을 튜닝을 위해 입력할 수 있습니다. 그런 다음 구성이 이미 구현된 것처럼 데이터베이스를 튜닝할 수 있습니다. 이렇게 하면 구성 구현을 위한 오버헤드를 발생시키지 않고도 물리적 디자인 구조의 특정 집합에 대한 "가정(what-if)"을 수행할 수 있습니다. 이 기능은 데이터베이스 엔진 튜닝 관리자 XML 스키마에서 완벽하게 지원됩니다. XML 입력 파일에서 평가할 구성을 지정한 다음 dta 명령 프롬프트 유틸리티를 사용하여 튜닝 세션을 시작할 수 있습니다. 이 기능에 대한 자세한 내용은 데이터베이스 엔진 튜닝 관리자를 사용한 탐구 분석을 참조하십시오.
분석 보고서
튜닝 세션이 완료된 후 데이터베이스 엔진 튜닝 관리자는 여러 분석 보고서를 텍스트나 XML로 생성합니다. 이러한 보고서는 작업에서 발생하는 쿼리의 비용, 작업에서 발생하는 이벤트의 빈도, 쿼리와 쿼리가 참조하는 인덱스 간의 관계 등과 같은 정보를 제공합니다. 데이터베이스 엔진 튜닝 관리자 GUI를 사용하여 보고서를 보거나 자주 사용하는 XML 편집기를 통해 XML로 생성된 보고서를 열 수 있습니다. 데이터베이스 엔진 튜닝 관리자가 생성하는 분석 보고서에 대한 자세한 내용은 데이터베이스 엔진 튜닝 관리자 보고서 선택을 참조하십시오.
튜닝 세션
분석을 시작하기 전에 데이터베이스 엔진 튜닝 관리자에서 튜닝 세션을 식별하는 고유 이름 또는 번호를 만들어야 한다는 메시지가 나타납니다. 작업을 분석한 후나 분석이 중지되는 경우 데이터베이스 엔진 튜닝 관리자는 튜닝 세션 정보를 저장하고 튜닝이 시작되기 전에 제공되었던 식별자를 해당 정보와 연결합니다. 세션 식별자를 사용하여 기존 세션을 데이터베이스 엔진 튜닝 관리자 GUI로 다시 로드할 수 있으며 여기에서 튜닝 결과와 보고서를 검토할 수 있습니다. 튜닝 세션에서는 특정 기간에 대한 튜닝 결과를 쉽게 비교할 수 있습니다. 튜닝 세션의 사용 방법은 세션 모니터를 사용하여 튜닝 권장 사항 평가를 참조하십시오.
dta 유틸리티에서만 사용할 수 있는 기능
데이터베이스 엔진 튜닝 관리자 GUI를 사용하는 경우 현재로서는 아래 섹션에 나열된 튜닝 옵션을 사용할 수 없습니다.
명령 프롬프트에서 또는 XML 입력 파일 사용 시
명령 프롬프트에서 dta 유틸리티를 실행하는 경우 또는 -ix 명령 프롬프트 인수를 사용하여 이 유틸리티에서 XML 입력 파일을 사용하는 경우 다음을 지정할 수 있습니다.
이름별 튜닝 로그(-e 명령 프롬프트 인수 또는 TableName 인수)
튜닝할 이벤트 수(-n 명령 프롬프트 인수 또는 NumberOfEvents 요소)
데이터베이스 엔진 튜닝 관리자가 제안한 인덱스의 최대 키 열 수(-c 명령 프롬프트 인수 또는 MaxKeyColumnsInIndex 요소)
데이터베이스 엔진 튜닝 관리자가 권장 구성에 대해 제안한 최소 향상률(-m 명령 프롬프트 인수 또는 MinPercentageImprovement 요소)
XML 입력 파일 사용 시
dta 유틸리티에서 XML 입력 파일을 사용하는 경우 위의 기능 외에도 다음을 수행할 수 있습니다.
테스트 서버에 셸 데이터베이스 만들기가 포함된 테스트 서버/프로덕션 서버 시나리오 사용(TestServer 요소)
XML 입력 파일에 작업 인라인 지정(EventString 요소)
작업의 상수 무시(IgnoreConstantsInWorkload 요소)
명령 프롬프트에서
명령 프롬프트에서 dta 유틸리티를 실행하면 위의 기능 외에도 다음을 수행할 수 있습니다.
피드백 메시지를 표시하지 않고 유틸리티가 실행되는 자동 모드 지정(-q 명령 프롬프트 인수)
튜닝 및 튜닝 권장 구성 자동 적용(-a 명령 프롬프트 인수)