다음을 통해 공유


데이터베이스 엔진 튜닝 관리자 시작

적용 대상: SQL Server

이 문서에서는 SQL Server에서 데이터베이스 엔진 튜닝 관리자를 시작 및 사용하는 방법에 대해 설명합니다. 데이터베이스를 튜닝한 후 결과를 확인하고 작업에 사용하는 방법에 대한 자세한 내용은 데이터베이스 엔진 튜닝 관리자 출력 보기 및 작업을 참조하세요.

참고 항목

데이터베이스 엔진 튜닝 관리자는 Azure SQL 데이터베이스 또는 Azure SQL Managed Instance에 대해 지원되지 않습니다. 그 대신에 Azure SQL Database 및 Azure SQL Managed Instance의 모니터링 및 성능 튜닝에서 권장되는 전략을 고려해 보세요. Azure SQL 데이터베이스의 경우 Azure SQL 데이터베이스의 Database Advisor 성능 권장 사항도 참조하세요.

데이터베이스 엔진 튜닝 관리자 초기화

처음 사용하는 사용자는 sysadmin 고정 서버 역할의 멤버가 데이터베이스 엔진 튜닝 관리자를 초기화해야 합니다. 튜닝 작업을 지원하려면 msdb 데이터베이스에 여러 시스템 테이블을 만들어야 하기 때문입니다. db_owner 고정 데이터베이스 역할의 멤버인 사용자는 초기화를 통해 자신이 소유한 데이터베이스의 테이블에 대한 작업을 튜닝할 수 있습니다.

시스템 관리자 권한이 있는 사용자가 다음 작업 중 하나를 수행해야 합니다.

  • 데이터베이스 엔진 튜닝 관리자 그래픽 사용자 인터페이스를 사용하여 SQL Server 인스턴스에 연결합니다. 자세한 내용은 이 문서의 뒷부분에서 데이터베이스 엔진 튜닝 관리자 시작을 참조하세요.

  • dta 유틸리티를 사용하여 첫 번째 워크로드를 튜닝합니다. 자세한 내용은 이 문서의 뒷부분에서 dta 유틸리티 사용을 참조하세요.

데이터베이스 엔진 튜닝 관리자 시작

다양한 시나리오에서 데이터베이스 튜닝을 지원하는 여러 가지 방법으로 데이터베이스 엔진 튜닝 관리자 GUI(그래픽 사용자 인터페이스)를 시작할 수 있습니다. 데이터베이스 엔진 튜닝 관리자는 시작 메뉴, SQL Server Management Studio의 도구 메뉴, SQL Server Management Studio의 쿼리 편집기, SQL Server Profiler의 도구 메뉴 등과 같은 다양한 방법으로 시작할 수 있습니다. 데이터베이스 엔진 튜닝 관리자를 처음 시작하면 연결하려는 SQL Server 인스턴스를 지정할 수 있는 서버에 연결 대화 상자가 애플리케이션에 표시됩니다.

Warning

SQL Server가 단일 사용자 모드에서 실행되는 경우 데이터베이스 엔진 튜닝 관리자를 시작하지 마세요. 서버가 단일 사용자 모드일 때 데이터베이스 엔진 튜닝 관리자를 시작하려고 시도하면 오류가 반환되고 데이터베이스 엔진 튜닝 관리자가 시작되지 않습니다. 단일 사용자 모드에 대한 자세한 내용은 단일 사용자 모드로 SQL Server 시작을 참조하세요.

Windows 시작 메뉴에서 데이터베이스 엔진 튜닝 관리자를 시작하려면

  1. 시작 메뉴에서 모든 프로그램을 가리키고, Microsoft SQL Server를 가리키고, 성능 도구를 가리킨 다음, 데이터베이스 엔진 튜닝 관리자를 선택합니다.

SQL Server Management Studio에서 데이터베이스 엔진 튜닝 관리자를 시작하려면

  1. SQL Server Management Studio 도구 메뉴에서 데이터베이스 엔진 튜닝 관리자를 클릭합니다.

SQL Server Management Studio 쿼리 편집기에서 데이터베이스 엔진 튜닝 관리자를 시작하려면

  1. SQL Server Management Studio에서 Transact-SQL 스크립트 파일을 엽니다. 자세한 내용은 쿼리 및 텍스트 편집기(SQL Server Management Studio)를 참조하세요.

  2. Transact-SQL 스크립트에서 쿼리를 선택하거나 전체 스크립트를 선택하고 선택 영역을 마우스 오른쪽 단추를 클릭한 다음 데이터베이스 엔진 튜닝 관리자의 쿼리 분석을 선택합니다. 데이터베이스 엔진 튜닝 관리자 GUI가 열리고 스크립트를 XML 파일 워크로드로 가져옵니다. 세션 이름과 튜닝 옵션을 지정하여 선택한 Transact-SQL 쿼리를 워크로드로 튜닝할 수 있습니다.

SQL Server Profiler에서 데이터베이스 엔진 튜닝 관리자를 시작하려면

  1. SQL Server Profiler 도구 메뉴에서 데이터베이스 엔진 튜닝 관리자를 클릭합니다.

워크로드를 만듭니다.

작업은 튜닝하려는 데이터베이스에 대해 실행되는 일련의 Transact-SQL 문입니다. 데이터베이스 엔진 튜닝 관리자는 이러한 작업을 분석하여 서버의 쿼리 성능을 향상시키는 인덱스 또는 분할 전략을 권장합니다.

다음 방법 중 하나를 사용하여 워크로드를 만들 수 있습니다.

  • 쿼리 저장소를 작업으로 사용합니다. 이렇게 하면 워크로드를 수동으로 만들 필요가 없습니다. 자세한 내용은 쿼리 저장소의 워크로드를 사용하여 데이터베이스 튜닝을 참조하세요.

    적용 대상: SQL Server 2016(13.x) 이상
  • 계획 캐시를 작업으로 사용합니다. 이렇게 하면 워크로드를 수동으로 만들 필요가 없습니다. 자세한 내용은 이 문서의 뒷부분에 있는 데이터베이스 튜닝을 참조하세요.

  • SQL Server Management Studio 또는 주로 사용하는 텍스트 편집기에서 쿼리 편집기 사용하여 Transact-SQL 스크립트 워크로드를 수동으로 만듭니다.

  • SQL Server Profiler를 사용하여 추적 파일 또는 추적 테이블 워크로드 만들기

    참고 항목

    추적 테이블을 워크로드로 사용하는 경우 해당 테이블은 데이터베이스 엔진 튜닝 관리자가 튜닝하는 서버와 같은 서버에 있어야 합니다. 다른 서버에 추적 테이블을 만드는 경우 데이터베이스 엔진 튜닝 관리자를 튜닝 중인 서버로 이동합니다.

  • 작업은 각 이벤트에 대한 가중치를 지정할 수 있는 XML 입력 파일에도 포함될 수 있습니다. 포함된 워크로드를 지정하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 XML 입력 파일 만들기를 참조하세요.

Transact-SQL 스크립트 워크로드를 만들려면

  1. SQL Server Management Studio에서 쿼리 편집기를 시작합니다. 자세한 내용은 쿼리 및 텍스트 편집기(SQL Server Management Studio)를 참조하세요.

  2. 쿼리 편집기에 Transact-SQL 스크립트를 입력합니다. 이 스크립트에는 튜닝하려는 데이터베이스에 대해 실행되는 일련의 Transact-SQL 문이 포함되어야 합니다.

  3. 파일을 .sql 확장명으로 저장합니다. 데이터베이스 엔진 튜닝 관리자 GUI 및 명령줄 dta 유틸리티에서는 이 Transact-SQL 스크립트를 워크로드로 사용할 수 있습니다.

추적 파일 및 추적 테이블 작업을 만들려면

  1. 다음 방법 중 하나를 사용하여 SQL Server Profiler를 시작합니다.

    • 시작 메뉴에서 모든 프로그램, Microsoft SQL Server, 성능 도구를 차례로 가리킨 다음 SQL Server Profiler를 선택합니다.

    • SQL Server Management Studio에서 도구 메뉴를 선택한 후 SQL Server Profiler를 선택합니다.

  2. SQL Server Profiler Tuning 템플릿을 사용하는 다음 절차에 따라 추적 파일 또는 테이블을 만듭니다.

SQL Server Profiler Tuning 템플릿을 사용하여 데이터베이스 엔진 튜닝 관리자의 작업을 캡처하는 것이 좋습니다.

자체 템플릿을 사용하려면 다음 추적 이벤트가 캡처되었는지 확인합니다.

  • RPC:Completed

  • SQL:BatchCompleted

  • SP:StmtCompleted

이러한 추적 이벤트의 Starting 버전을 사용할 수도 있습니다. 예를 들어 SQL:BatchStarting과 같습니다. 한편 이러한 추적 이벤트의 Completed 버전에는 데이터베이스 엔진 튜닝 관리자의 작업 튜닝 효율을 높일 수 있도록 Duration 열이 포함됩니다. 데이터베이스 엔진 튜닝 관리자는 다른 유형의 추적 이벤트를 조정하지 않습니다. 이러한 추적 이벤트에 대한 자세한 내용은 저장 프로시저 이벤트 범주TSQL 이벤트 범주를 참조하세요. SQL 추적 저장 프로시저를 사용하여 추적 파일 워크로드를 만드는 방법에 대한 자세한 내용은 추적 만들기(Transact-SQL)를 참조하세요.

loginname 데이터 열이 포함된 추적 파일 또는 추적 테이블 워크로드

데이터베이스 엔진 튜닝 관리자는 튜닝 프로세스의 일부로 실행 계획 요청을 제출합니다. LoginName 데이터 열이 포함된 추적 테이블 또는 파일이 워크로드로 사용되는 경우 데이터베이스 엔진 튜닝 관리자가 LoginName에 지정된 사용자를 가장합니다. 이 사용자에게 추적에 포함된 문의 실행 계획을 실행하고 생성할 수 있는 SHOWPLAN 권한이 없으면 데이터베이스 엔진 튜닝 관리자는 해당 문을 튜닝하지 않습니다.

추적의 LoginName 열에 지정된 각 사용자에게 SHOWPLAN 권한을 부여하지 않게 하려면
  1. 추적 파일 또는 테이블 워크로드를 튜닝합니다. 자세한 내용은 이 문서의 뒷부분에 있는 데이터베이스 튜닝을 참조하세요.

  2. 튜닝 로그에서 권한 부족으로 인해 조정되지 않은 문을 확인합니다. 자세한 내용은 데이터베이스 엔진 튜닝 관리자의 출력 보기 및 작업을 참조하세요.

  3. 튜닝되지 않은 이벤트에서 LoginName 열을 삭제하여 새 워크로드를 만든 다음, 조정되지 않은 이벤트만 새 추적 파일 또는 테이블에 저장합니다. 추적에서 데이터 열을 삭제하는 방법에 대한 자세한 내용은 추적 파일에 대해 이벤트 및 데이터 열 지정(SQL Server Profiler) 또는 기존 추적 수정(Transact-SQL)을 참조하세요.

  4. LoginName 열이 없는 새 작업을 데이터베이스 엔진 튜닝 관리자에 다시 제출합니다.

추적에 로그인 정보가 지정되어 있지 않으므로 데이터베이스 엔진 튜닝 관리자에서 새 작업을 튜닝합니다. 문의 LoginName이 없으면 데이터베이스 엔진 튜닝 관리자 튜닝 세션을 시작한 사용자(sysadmin 고정 서버 역할 또는 db_owner 고정 데이터베이스 역할의 멤버)를 가장하여 해당 문을 조정합니다.

데이터베이스 튜닝하기

데이터베이스를 튜닝하려면 데이터베이스 엔진 튜닝 관리자 GUI 또는 dta 유틸리티를 사용할 수 있습니다.

참고 항목

추적 테이블을 데이터베이스 엔진 튜닝 관리자의 작업으로 사용하기 전에 추적이 중지되었는지 확인합니다. 데이터베이스 엔진 튜닝 관리자 추적 이벤트가 여전히 워크로드로 쓰여지는 추적 테이블 사용을 지원하지 않습니다.

데이터베이스 엔진 튜닝 관리자 그래픽 사용자 인터페이스 사용

데이터베이스 엔진 튜닝 관리자 GUI에서 계획 캐시, 작업 파일 또는 작업 테이블을 사용하여 데이터베이스를 튜닝할 수 있습니다. 데이터베이스 엔진 튜닝 관리자 GUI를 사용하여 현재 튜닝 세션의 결과와 이전 튜닝 세션의 결과를 손쉽게 볼 수 있습니다. 사용자 인터페이스 옵션에 대한 자세한 내용은 이 문서의 뒷부분에서 사용자 인터페이스 설명을 참조하세요. 데이터베이스를 튜닝한 후 출력을 작업에 사용하는 방법에 대한 자세한 내용은 데이터베이스 엔진 튜닝 관리자 출력 보기 및 작업을 참조하세요.

쿼리 저장소를 사용하여 데이터베이스를 튜닝하려면

자세한 내용은 쿼리 저장소의 작업을 사용하여 데이터베이스 튜닝을 참조하세요.

계획 캐시를 사용하여 데이터베이스를 튜닝하려면

  1. 데이터베이스 엔진 튜닝 관리자를 실행한 다음 SQL Server 인스턴스에 로그인합니다. 자세한 내용은 이 문서의 앞부분에서 데이터베이스 엔진 튜닝 관리자 시작을 참조하세요.

  2. 일반 탭에서 세션 이름에 이름을 입력하여 새 튜닝 세션을 만듭니다. 튜닝 세션을 시작하기 전에 일반 탭에서 필드를 구성해야 합니다. 튜닝 세션을 시작하기 전에 튜닝 옵션 탭의 설정은 수정할 필요가 없습니다.

  3. 워크로드 옵션으로 계획 캐시 선택 데이터베이스 엔진 튜닝 관리자는 계획 캐시에서 분석에 사용할 상위 1,000개의 이벤트를 선택합니다.

  4. 튜닝할 데이터베이스 또는 데이터베이스를 선택하고 선택적으로 선택한 테이블에서 각 데이터베이스에서 하나 이상의 테이블을 선택합니다. 모든 데이터베이스에 대한 캐시 항목을 포함하려면 튜닝 옵션에서 고급 옵션을 선택한 다음 모든 데이터베이스에서 계획 캐시 이벤트 포함을 선택합니다.

  5. 튜닝 로그 저장을 선택하여 튜닝 로그의 복사본을 저장합니다. 튜닝 로그의 복사본을 저장하지 않으려면 확인란의 선택을 취소합니다.

    세션을 열고 진행률 탭을 선택하여 분석한 후의 튜닝 로그를 확인할 수 있습니다.

  6. 튜닝 옵션 탭을 클릭하고 나열된 옵션 중 하나를 선택합니다.

  7. 분석 시작을 클릭합니다.

    튜닝 세션이 시작된 후 중지하려면 작업 메뉴에서 다음 옵션 중 하나를 선택합니다.

    • 분석 중지(권장 사항 포함)는 튜닝 세션을 중지하고 이 시점까지 수행된 분석에 따라 데이터베이스 엔진 튜닝 관리자가 권장 사항을 생성할지 여부를 결정하라는 메시지를 표시합니다.

    • 중지 분석은 권장 사항을 생성하지 않고 튜닝 세션을 중지합니다.

참고 항목

데이터베이스 엔진 튜닝 관리자를 일시 중지하는 기능은 지원되지 않습니다. 분석 중지 또는 분석 중지(권장 구성) 도구 모음 단추를 선택한 후 분석 시작 도구 모음 단추를 선택하면 데이터베이스 엔진 튜닝 관리자가 새 튜닝 세션을 시작합니다.

워크로드 파일 또는 테이블을 입력으로 사용하여 데이터베이스를 튜닝하려면

  1. 분석 중에 추가, 제거 또는 유지할지 고려할 데이터베이스 엔진 튜닝 관리자 데이터베이스 기능(인덱스, 인덱싱된 뷰, 분할)을 결정합니다.

  2. 작업을 만듭니다. 자세한 내용은 이 문서의 앞부분에서 작업 만들기를 참조하세요.

  3. 데이터베이스 엔진 튜닝 관리자를 실행한 다음 Microsoft SQL Server 인스턴스에 로그인합니다. 자세한 내용은 이 문서의 앞부분에서 데이터베이스 엔진 튜닝 관리자 시작을 참조하세요.

  4. 일반 탭에서 세션 이름에 이름을 입력하여 새 튜닝 세션을 만듭니다.

  5. 작업 파일 또는 테이블을 선택하고 파일 경로 또는 인접한 텍스트 상자에 테이블 이름을 입력합니다.

    테이블을 지정하는 형식

    database_name.schema_name.table_name  
    

    작업 파일이나 테이블을 검색하려면 찾아보기를 선택합니다. 데이터베이스 엔진 튜닝 관리자는 워크로드 파일이 롤오버 파일이라고 가정합니다. 롤오버 파일에 대한 자세한 내용은 추적 파일 및 테이블 크기 제한을 참조하세요.

    추적 테이블을 워크로드로 사용하는 경우 해당 테이블은 데이터베이스 엔진 튜닝 관리자가 튜닝하는 서버와 같은 서버에 있어야 합니다. 다른 서버에 추적 테이블을 만드는 경우 워크로드로 사용하기 전에 데이터베이스 엔진 튜닝 관리자를 튜닝 중인 서버로 이동합니다.

  6. 5단계에서 선택한 워크로드를 실행할 데이터베이스 및 테이블을 선택합니다. 테이블을 선택하려면 선택한 테이블 화살표를 선택합니다.

  7. 튜닝 로그 저장을 선택하여 튜닝 로그의 복사본을 저장합니다. 튜닝 로그의 복사본을 저장하지 않으려면 확인란의 선택을 취소합니다.

    세션을 열고 진행률 탭을 선택하여 분석한 후의 튜닝 로그를 확인할 수 있습니다.

  8. 튜닝 옵션 탭을 클릭하고 나열된 옵션 중 하나를 선택합니다.

  9. 도구 모음에서 분석 시작 버튼을 클릭합니다.

    튜닝 세션이 시작된 후 중지하려면 작업 메뉴에서 다음 옵션 중 하나를 선택합니다.

    • 분석 중지(권장 사항 포함)는 튜닝 세션을 중지하고 이 시점까지 수행된 분석에 따라 데이터베이스 엔진 튜닝 관리자가 권장 사항을 생성할지 여부를 결정하라는 메시지를 표시합니다.

    • 중지 분석은 권장 사항을 생성하지 않고 튜닝 세션을 중지합니다.

참고 항목

데이터베이스 엔진 튜닝 관리자를 일시 중지하는 기능은 지원되지 않습니다. 분석 중지 또는 분석 중지(권장 구성) 도구 모음 단추를 선택한 후 분석 시작 도구 모음 단추를 선택하면 데이터베이스 엔진 튜닝 관리자가 새 튜닝 세션을 시작합니다.

dta 유틸리티 사용

dta 유틸리티는 데이터베이스를 튜닝하는 데 사용할 수 있는 명령 프롬프트 실행 파일을 제공합니다. 따라서 일괄 처리 파일 및 스크립트에서 데이터베이스 엔진 튜닝 관리자 기능을 사용할 수 있습니다. dta 유틸리티는 계획 캐시 항목, 추적 파일, 추적 테이블 및 Transact-SQL 스크립트를 작업으로 가져옵니다. 데이터베이스 엔진 튜닝 관리자 XML 스키마를 준수하는 XML 입력도 필요하며 이 입력은 이 Microsoft 웹 사이트에서 제공됩니다.

dta 유틸리티를 사용하여 워크로드 튜닝을 시작하기 전에 다음을 고려합니다.

  • 추적 테이블을 워크로드로 사용하는 경우 해당 테이블은 데이터베이스 엔진 튜닝 관리자가 튜닝하는 서버와 같은 서버에 있어야 합니다. 다른 서버에 추적 테이블을 만드는 경우 데이터베이스 엔진 튜닝 관리자를 튜닝 중인 서버로 이동합니다.

  • 추적 테이블을 데이터베이스 엔진 튜닝 관리자의 작업으로 사용하기 전에 추적이 중지되었는지 확인합니다. 데이터베이스 엔진 튜닝 관리자 추적 이벤트가 여전히 워크로드로 쓰여지는 추적 테이블 사용을 지원하지 않습니다.

  • 튜닝 세션이 예상보다 오래 실행되는 경우 Ctrl+C를 눌러 튜닝 세션을 중지하고 이 시점까지 완료된 분석 dta를 기반으로 권장 사항을 생성할 수 있습니다. 권장 사항을 생성할지 여부를 결정하라는 메시지가 표시됩니다. 권장 사항을 생성하지 않고 튜닝 세션을 중지하려면 Ctrl+C를 다시 누릅니다.

dta 유틸리티 구문에 대한 자세한 내용 및 예제는 dta utility를 참조하세요.

계획 캐시를 사용하여 데이터베이스를 튜닝하려면

  1. -ip 옵션을 지정합니다. 선택한 데이터베이스에 대한 상위 1,000개의 계획 캐시 이벤트가 분석됩니다.

    명령 프롬프트에서 다음을 입력합니다.

    dta -E -D DatabaseName -ip -s SessionName  
    
  2. 분석에 사용할 이벤트 수를 수정하려면 –n 옵션을 지정합니다. 다음 예제에서는 캐시 항목 수를 2,000개로 늘립니다.

    dta -E -D DatabaseName -ip -n 2000-s SessionName1  
    
  3. 인스턴스에 있는 모든 데이터베이스의 이벤트를 분석하려면 -ipf 옵션을 지정합니다.

    dta -E -D DatabaseName -ip -ipf -n 2000 -s SessionName2  
    

워크로드 및 dta 유틸리티 기본 설정을 사용하여 데이터베이스를 튜닝하려면

  1. 분석 중에 추가, 제거 또는 유지할지 고려할 데이터베이스 엔진 튜닝 관리자 데이터베이스 기능(인덱스, 인덱싱된 뷰, 분할)을 결정합니다.

  2. 작업을 만듭니다. 자세한 내용은 이 문서의 앞부분에서 작업 만들기를 참조하세요.

  3. 명령 프롬프트에서 다음을 입력합니다.

    dta -E -D DatabaseName -if WorkloadFile -s SessionName  
    

    여기서 -E는 튜닝 세션에서 로그인 ID 및 암호 대신 신뢰할 수 있는 연결을 사용하도록 지정하고, -D는 튜닝할 데이터베이스의 이름을 지정합니다. 기본적으로 bcp 유틸리티가 로컬 컴퓨터에 있는 SQL Server 의 기본 인스턴스에 연결됩니다. 다음 절차에 표시된 대로 원격 데이터베이스를 지정하거나 명명된 인스턴스를 지정하려면 -S 옵션을 사용합니다. -if 옵션은 작업 파일(Transact-SQL 스크립트 또는 추적 파일)의 이름과 경로를 지정하고 -s 옵션은 튜닝 세션의 이름을 지정합니다.

    여기에 나와 있는 네 가지 옵션(데이터베이스 이름, 워크로드, 연결 유형 및 세션 이름)은 필수입니다.

원격 데이터베이스 또는 특정 기간 동안 명명된 인스턴스를 튜닝하려면

  1. 분석 중에 추가, 제거 또는 유지할지 고려할 데이터베이스 엔진 튜닝 관리자 데이터베이스 기능(인덱스, 인덱싱된 뷰, 분할)을 결정합니다.

  2. 작업을 만듭니다. 자세한 내용은 이 문서의 앞부분에서 작업 만들기를 참조하세요.

  3. 명령 프롬프트에서 다음을 입력합니다.

    dta -S ServerName\Instance -D DatabaseName -it WorkloadTableName   
    -U LoginID -P Password -s SessionName -A TuningTimeInMinutes  
    

    여기서 -S는 원격 서버 이름 및 인스턴스(또는 로컬 서버의 명명된 인스턴스)를 지정하고, -D는 튜닝할 데이터베이스의 이름을 지정합니다. -it 옵션은 작업 테이블의 이름을 지정하고, -U-P 는 원격 데이터베이스에 대한 로그인 ID와 암호를 지정하고, -s 는 튜닝 세션 이름을 지정하고, -A 는 튜닝 세션 기간(단위 분)을 지정합니다. 기본적으로 dta 유틸리티는 8시간의 튜닝 지속 시간을 사용합니다. 데이터베이스 엔진 튜닝 관리자가 워크로드를 무제한으로 튜닝하도록 하려면 0으로 -A 옵션을 지정합니다.

XML 입력 파일을 사용하여 데이터베이스를 튜닝하려면

  1. 분석 중에 추가, 제거 또는 유지할지 고려할 데이터베이스 엔진 튜닝 관리자 데이터베이스 기능(인덱스, 인덱싱된 뷰, 분할)을 결정합니다.

  2. 작업을 만듭니다. 자세한 내용은 이 문서의 앞부분에서 작업 만들기를 참조하세요.

  3. XML 입력 파일을 만듭니다. 자세한 내용은 이 문서의 뒷부분에 있는 XML 입력 파일 만들기를 참조하세요.

  4. 명령 프롬프트에서 다음을 입력합니다.

    dta -E -S ServerName\Instance -s SessionName -ix PathToXMLInputFile  
    

    여기서 -E는 신뢰할 수 있는 연결을 지정하고, -S는 원격 서버와 인스턴스를 지정하거나 로컬 서버에서 명명된 인스턴스를 지정하며, -s는 튜닝 세션 이름을 지정하고 -ix는 튜닝 세션에 사용할 XML 입력 파일을 지정합니다.

  5. 유틸리티가 작업 튜닝을 마친 후에는 데이터베이스 엔진 튜닝 관리자 GUI를 사용하여 튜닝 세션의 결과를 볼 수 있습니다. 또는 -ox 옵션을 사용하여 튜닝 권장 사항을 XML 파일에 쓰도록 지정할 수도 있습니다. 자세한 내용은 dta 유틸리티를 참조하세요.

XML 입력 파일 만들기

숙련된 XML 개발자라면 데이터베이스 엔진 튜닝 관리자가 워크로드를 조정하는 데 사용할 수 있는 XML 형식 파일입니다. 이러한 XML 파일을 만들려면 원하는 XML 도구를 사용하여 샘플 파일을 편집하거나 데이터베이스 엔진 튜닝 관리자 XML 스키마로 인스턴스를 생성합니다.

데이터베이스 엔진 튜닝 관리자 XML 스키마는 Microsoft SQL Server 설치의 다음 위치에 있습니다.

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd

데이터베이스 엔진 튜닝 관리자 XML 스키마는 이 Microsoft 웹사이트에서 온라인으로도 사용할 수 있습니다.

이 URL을 클릭하면 많은 SQL Server XML 스키마를 사용할 수 있는 페이지로 이동됩니다. 데이터베이스 엔진 튜닝 관리자의 행에 도달할 때까지 페이지를 아래로 스크롤합니다.

작업을 튜닝할 XML 입력 파일을 만들려면

  1. 작업을 만듭니다. SQL Server Profiler의 튜닝 템플릿을 사용하여 추적 파일 또는 테이블을 사용하거나 SQL Server의 대표적인 워크로드를 재현하는 Transact-SQL 스크립트를 만들 수 있습니다. 자세한 내용은 이 문서의 앞부분에서 작업 만들기를 참조하세요.

  2. 다음 방법 중 하나로 XML 입력 파일을 만듭니다.

    • DTA(XML 입력 파일 샘플) 중 하나를 복사하여 즐겨 찾는 XML 편집기에 붙여 넣습니다. 값을 변경하여 SQL Server 설치에 적합한 인수를 지정하고 XML 파일을 저장합니다.

    • 주로 사용하는 XML 도구를 사용하여 데이터베이스 엔진 튜닝 관리자 XML 스키마에서 인스턴스를 생성합니다.

  3. XML 입력 파일을 만든 후 dta 명령줄 유틸리티에 대한 입력으로 사용하여 워크로드를 튜닝합니다. 이 유틸리티에서 XML 입력 파일을 사용하는 방법에 대한 자세한 내용은 이 문서의 앞부분에 있는 dta 유틸리티 사용 섹션을 참조하세요.

참고 항목

XML 입력 파일에 직접 지정된 워크로드인 인라인 워크로드를 사용하려면 샘플 XML 입력 파일 샘플과 DTA(인라인 워크로드)를 사용합니다.

사용자 인터페이스 설명

도구 메뉴/옵션 페이지

이 대화 상자를 사용하여 데이터베이스 엔진 튜닝 관리자에 대한 일반 구성 매개 변수를 지정할 수 있습니다.

시작 시
데이터베이스 엔진 튜닝 관리자를 시작할 때 수행할 작업을 지정합니다. 데이터베이스 연결 없이 열거나, 새 연결 대화 상자를 표시하거나, 새 세션을 표시하거나, 마지막으로 로드된 세션을 로드합니다.

글꼴 변경
데이터베이스 엔진 튜닝 관리자 테이블에 사용할 표시 글꼴을 지정합니다.

가장 최근에 사용한 목록의 항목 수
파일 메뉴의 최근 세션 또는 최근 파일 아래에 표시할 세션 또는 파일 수를 지정합니다.

마지막 튜닝 옵션 저장
세션 간에 튜닝 옵션을 유지합니다. 기본적으로 선택됩니다. 항상 데이터베이스 엔진 튜닝 관리자 기본값으로 시작하려면 이 확인란의 선택을 취소합니다.

세션을 영구적으로 삭제하기 전에 확인
세션을 삭제하기 전에 확인 대화 상자를 표시합니다.

세션 분석을 중지하기 전에 확인
워크로드 분석을 중지하기 전에 확인 대화 상자를 표시합니다.

일반 탭 옵션

튜닝 세션을 시작하기 전에 일반 탭에서 필드를 구성해야 합니다. 튜닝 세션을 시작하기 전에 튜닝 옵션 탭의 설정은 수정할 필요가 없습니다.

세션 이름
세션의 이름을 지정합니다. 세션 이름은 튜닝 세션과 이름을 서로 연결합니다. 이 이름을 참조하여 나중에 튜닝 세션을 검토할 수 있습니다.

파일
워크로드의 .sql 스크립트 또는 추적 파일을 지정합니다. 연결된 텍스트 상자에서 경로 및 파일 이름을 지정합니다. 데이터베이스 엔진 튜닝 관리자는 워크로드 추적 파일이 롤오버 파일이라고 가정합니다. 롤오버 파일에 대한 자세한 내용은 추적 파일 및 테이블 크기 제한을 참조하세요.

테이블
워크로드의 추적 테이블을 지정합니다. 다음과 같이 연결된 텍스트 상자에 추적 테이블의 정규화된 이름을 지정합니다.

database_name.owner_name.table_name  
  • 추적 테이블을 작업 테이블로 사용하기 전에 추적이 중지되어 있는지 확인하세요.

  • 추적 테이블은 데이터베이스 엔진 튜닝 관리자가 튜닝하는 서버와 같은 서버에 있어야 합니다. 다른 서버에 추적 테이블을 만드는 경우 데이터베이스 엔진 튜닝 관리자를 튜닝 중인 서버로 이동합니다.

계획 캐시
계획 캐시를 워크로드로 지정합니다. 이렇게 하면 워크로드를 수동으로 만들 필요가 없습니다. 데이터베이스 엔진 튜닝 관리자는 분석에 사용할 상위 1,000개의 이벤트를 선택합니다.

Xml
SQL Server Management Studio에서 작업 쿼리를 가져오지 않은 경우에는 이 옵션이 나타나지 않습니다.

SQL Server Management Studio에서 워크로드 쿼리를 가져오려면 다음을 수행합니다.

  1. 쿼리 편집기 쿼리를 입력하고 선택합니다.

  2. 강조 표시된 쿼리를 마우스 오른쪽 단추로 클릭하고 데이터베이스 엔진 튜닝 관리자의 쿼리 분석을 선택합니다.

워크로드 찾아보기[파일 또는 테이블]
파일 또는 테이블을 워크로드 원본으로 선택한 경우 이 찾아보기 단추를 사용하여 대상을 선택합니다.

XML 워크로드 미리 보기
SQL Server Management Studio에서 가져온 XML 형식 워크로드를 봅니다.

워크로드 분석을 위한 데이터베이스
워크로드를 튜닝할 때 데이터베이스 엔진 튜닝 관리자가 연결하는 첫 번째 데이터베이스를 지정합니다. 튜닝이 시작되면 데이터베이스 엔진 튜닝 관리자가 워크로드에 포함된 USE DATABASE 문을 사용하여 지정된 데이터베이스에 연결합니다.

튜닝할 데이터베이스 및 테이블 선택
튜닝할 데이터베이스와 테이블을 지정합니다. 모든 데이터베이스를 지정하려면 이름 열 머리글의 확인란을 선택합니다. 특정 데이터베이스를 지정하려면 데이터베이스 이름 옆에 있는 확인란을 선택합니다. 기본적으로, 선택한 데이터베이스에 대한 모든 테이블이 튜닝 세션에 자동으로 포함됩니다. 테이블을 제외하려면 선택한 테이블 열에서 화살표를 선택한 다음 튜닝하지 않으려는 테이블 옆에 있는 확인란의 선택을 취소합니다.

선택한 테이블 아래쪽 화살표
튜닝할 개별 테이블을 선택할 수 있도록 테이블 목록을 펼칩니다.

튜닝 로그 저장
세션 도중에 로그를 만들고 오류를 기록합니다.

참고 항목

데이터베이스 엔진 튜닝 관리자가 일반 탭에 표시된 테이블의 행 정보를 자동으로 업데이트하지 않습니다. 대신 데이터베이스의 메타데이터를 사용합니다. 행 정보가 오래된 것으로 의심되는 경우 관련 개체에 대해 DBCC UPDATEUSAGE 명령을 실행합니다.

튜닝 탭 옵션

튜닝 옵션 탭을 사용하여 일반 튜닝 옵션의 기본 설정을 수정할 수 있습니다. 튜닝 세션을 시작하기 전에 튜닝 옵션 탭의 설정은 수정할 필요가 없습니다.

튜닝 시간 제한
현재 튜닝 세션의 시간을 제한합니다. 튜닝 시간을 더 많이 제공하면 권장 사항의 품질이 향상됩니다. 최상의 권장 사항을 얻으려면 이 옵션을 선택하지 마세요.

참고 항목

데이터베이스 엔진 튜닝 관리자를 사용하면 분석하는 동안 시스템 리소스가 사용됩니다. 튜닝 중인 서버에서 작업량이 많을 것으로 예상되는 기간 전에 튜닝을 중지하려면 튜닝 시간 제한 을 사용합니다.

고급 옵션
고급 튜닝 옵션 대화 상자를 사용하여 최대 공간, 최대 키 열 및 온라인 인덱스 권장 사항을 구성합니다.

권장 사항의 최대 공간 정의(MB)
데이터베이스 엔진 튜닝 관리자에서 권장하는 물리적 디자인 구조에 사용할 최대 공간의 크기를 입력합니다.

값을 입력하지 않으면 데이터베이스 엔진 튜닝 관리자에서 다음 공간 값 중에 작은 값을 사용합니다.

  • 데이터베이스 내 테이블에 있는 힙과 클러스터형 인덱스의 전체 크기를 포함하여, 현재 원시 데이터 크기의 3배.

  • 연결된 모든 디스크 드라이브의 여유 공간과 원시 데이터 크기를 더한 것입니다.

모든 데이터베이스의 계획 캐시 이벤트 포함
모든 데이터베이스의 계획 캐시 이벤트를 분석하도록 지정합니다.

최대 인덱스당 열
인덱스에 포함할 최대 열 개수를 지정합니다. 기본값은 1023입니다.

모든 권장 사항이 오프라인임
최적의 권장 구성을 생성하지만 온라인에서 물리적 디자인 구조를 생성하는 것은 권장하지 않습니다.

가능한 경우 온라인 권장 구성 생성
Transact-SQL 문을 만들어 권장 구성을 구현하는 경우 오프라인으로 더 빨리 구현할 수 있는 방법이 있더라도 서버에서 온라인으로 구현할 수 있는 방법을 선택합니다.

온라인 권장 사항만 생성
서버를 온라인 상태로 유지할 수 있는 권장 구성만 생성합니다.

중지 시간
데이터베이스 엔진 튜닝 관리자를 중지해야 하는 날짜와 시간을 제공합니다.

인덱스 및 인덱싱된 뷰
클러스터형 인덱스, 비클러스터형 인덱스 및 인덱싱된 뷰 추가에 대한 권장 구성을 포함하려면 이 확인란을 선택합니다.

인덱싱된 뷰
인덱싱된 뷰를 추가하기 위한 권장 사항만 포함합니다. 클러스터형 인덱스와 비클러스터형 인덱스는 권장되지 않습니다.

필터링된 인덱스 포함
필터링된 인덱스를 추가하기 위한 권장 사항을 포함합니다. 인덱스 및 인덱싱된 뷰, 인덱스 또는 비클러스터형 인덱스 중 하나를 선택하는 경우 이 옵션을 사용할 수 있습니다.

인덱스
클러스터형 인덱스 및 비클러스터형 인덱스 추가에 대한 권장 구성만 포함됩니다. 인덱싱된 뷰는 권장되지 않습니다.

비클러스터형 인덱스
비클러스터형 인덱스에 대한 권장 구성만 포함됩니다. 클러스터형 인덱스와 인덱싱된 뷰는 권장되지 않습니다.

기존 PDS의 사용률만 평가
현재 인덱스의 효과를 평가하지만 추가 인덱스 또는 인덱싱된 뷰는 권장되지 않습니다.

분할 안 함
분할에 대한 권장 구성이 생성되지 않습니다.

전체 분할
분할에 대한 권장 사항을 포함합니다.

정렬된 분할
파티션을 쉽게 유지 관리할 수 있도록 새 권장 파티션이 정렬됩니다.

기존 PDS를 유지하지 않음
불필요한 기존 인덱스, 뷰 및 분할 삭제에 대한 권장 구성이 생성됩니다. 기존 PDS(실제 디자인 구조)가 작업을 처리하는 데 효율적인 경우 데이터베이스 엔진 튜닝 관리자에서 PDS 삭제가 권장되지 않습니다.

인덱스만 유지
모든 기존 인덱스를 유지하지만 불필요한 인덱싱된 뷰 및 분할을 삭제하는 것이 좋습니다.

모든 기존 PDS 유지
기존 인덱스, 인덱싱된 뷰 및 분할이 모두 유지됩니다.

클러스터형 인덱스만 유지
기존 클러스터형 인덱스를 모두 유지합니다. 단, 불필요한 인덱싱된 뷰, 파티션 및 비클러스터형 인덱스는 삭제하는 것이 좋습니다.

정렬된 분할 유지
현재 정렬된 상태로 분할 구조가 유지되지만 불필요한 인덱싱된 뷰, 인덱스 및 정렬되지 않은 분할의 삭제에 대한 권장 구성이 생성됩니다. 권장되는 추가 분할을 현재 파티션 구성표에 맞춥니다.

진행률 탭 옵션

데이터베이스 엔진 튜닝 관리자에서 작업 분석이 시작되면 데이터베이스 엔진 튜닝 관리자의 진행 탭이 표시됩니다.

튜닝 세션이 시작된 후 중지하려면 작업 메뉴에서 다음 옵션 중 하나를 선택합니다.

  • 분석 중지(권장 사항 포함)는 튜닝 세션을 중지하고 이 시점까지 수행된 분석에 따라 데이터베이스 엔진 튜닝 관리자가 권장 사항을 생성할지 여부를 결정하라는 메시지를 표시합니다.

  • 중지 분석은 권장 사항을 생성하지 않고 튜닝 세션을 중지합니다.

튜닝 진행률
진행률의 현재 상태를 나타냅니다. 수행한 작업 수와 수신한 오류, 성공 및 경고 메시지 수를 포함합니다.

세부 정보
상태를 나타내는 아이콘을 포함합니다.

작업
수행 중인 단계를 표시합니다.

상태
작업 단계의 상태를 표시합니다.

Message
작업 단계에서 반환된 모든 메시지를 포함합니다.

튜닝 로그
이 튜닝 세션과 관련한 정보를 포함합니다. 이 로그를 인쇄하려면 로그를 마우스 오른쪽 단추로 클릭한 다음 인쇄를 선택합니다.

참고 항목

데이터베이스 엔진 튜닝 관리자의 출력 보기 및 작업
dta 유틸리티
자습서: 데이터베이스 엔진 튜닝 관리자