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

적용 대상:SQL Server

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

참고 항목

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

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

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

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

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

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

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

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

경고

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 튜닝 템플릿을 사용하는 다음 절차에 설명된 대로 추적 파일 또는 테이블을 만듭니다.

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

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

  • RPC:Completed

  • SQL:BatchCompleted

  • SP:StmtCompleted

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

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

데이터베이스 엔진 튜닝 관리자는 튜닝 프로세스의 일부로 실행 계획 요청을 제출합니다. 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 스크립트를 워크로드로 사용합니다. 또한 이 Microsoft 웹 사이트에서 사용할 수 있는 데이터베이스 엔진 튜닝 관리자 XML 스키마를 따르는 XML 입력을 사용합니다.

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

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

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

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

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

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

  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 대신 신뢰할 수 있는 연결을 사용하도록 지정하면 튜닝할 데이터베이스의 이름을 지정합니다. 기본적으로 유틸리티는 로컬 컴퓨터에서 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시간 튜닝 기간을 사용합니다. 데이터베이스 엔진 튜닝 관리자가 무제한으로 워크로드를 조정하려면 옵션으로 -A 0을 지정합니다.

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 유지
기존 인덱스, 인덱싱된 뷰 및 분할이 모두 유지됩니다.

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

정렬된 분할 유지
현재 정렬된 상태로 분할 구조가 유지되지만 불필요한 인덱싱된 뷰, 인덱스 및 정렬되지 않은 분할의 삭제에 대한 권장 구성이 생성됩니다. 권장되는 추가 분할은 현재 분할 체계와 일치합니다.

진행률 탭 옵션

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

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

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

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

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

자세히
상태를 나타내는 아이콘을 포함합니다.

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

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

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

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

참고 항목

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