다음을 통해 공유


2단원: 데이터베이스 엔진 튜닝 관리자 사용하기

적용 대상: SQL Server

데이터베이스 엔진 튜닝 관리자를 사용하면 데이터베이스를 튜닝하고, 튜닝 세션을 관리하고, 튜닝 권장 사항을 볼 수 있습니다. 실제 디자인 구조에 대해 고급 지식을 갖고 있는 사용자는 이 도구를 사용하여 예비 데이터베이스 튜닝 분석을 수행할 수 있습니다. 데이터베이스 튜닝 초보자도 이 도구를 사용하여 튜닝 워크로드에 가장 적합한 실제 디자인 구조 구성을 찾을 수도 있습니다. 이 단원에서는 데이터베이스 엔진 튜닝 관리자 그래픽 사용자 인터페이스를 처음으로 사용하는 데이터베이스 관리자와, 실제 디자인 구조에 많은 지식이 없는 시스템 관리자를 위해 기본 사례를 제공합니다.

사전 요구 사항

이 자습서를 완료하려면 SQL Server Management Studio, SQL Server를 실행하는 서버에 대한 액세스 및 AdventureWorks2022 데이터베이스가 필요합니다.

SSMS에서 데이터베이스를 복원하기 위한 지침은 데이터베이스 복원을 참고하세요.

참고

이 자습서는 SQL Server Management Studio 및 기본적인 데이터베이스 관리 작업을 사용하는 데 익숙한 사용자를 위한 것입니다.

워크로드 튜닝

데이터베이스 엔진 튜닝 관리자를 사용하여 튜닝하려고 선택한 데이터베이스와 테이블의 쿼리 성능에 가장 적합한 물리적 데이터베이스 디자인을 찾을 수 있습니다.

  1. 샘플 SELECT 문을 복사하고 SQL Server Management Studio의 쿼리 편집기에 해당 문을 붙여넣습니다. 파일을 쉽게 찾을 수 있는 디렉터리에 MyScript.sql로 저장합니다. AdventureWorks2022 데이터베이스에 대해 작동하는 예제가 아래에 제시되어 있습니다.
Use [AdventureWorks2022]; -- may need to modify database name to match database
GO
SELECT DISTINCT pp.LastName, pp.FirstName 
FROM Person.Person pp JOIN HumanResources.Employee e
ON e.BusinessEntityID = pp.BusinessEntityID WHERE pp.BusinessEntityID IN 
(SELECT SalesPersonID 
FROM Sales.SalesOrderHeader
WHERE SalesOrderID IN 
(SELECT SalesOrderID 
FROM Sales.SalesOrderDetail
WHERE ProductID IN 
(SELECT ProductID 
FROM Production.Product p 
WHERE ProductNumber = 'BK-M68B-42')));
GO

SQL 쿼리 저장

  1. 데이터베이스 엔진 튜닝 관리자를 시작합니다. SSMS(SQL Server Management Studio)의 도구 메뉴에서 데이터베이스 튜닝 관리자를 선택합니다. 자세한 내용은 데이터베이스 엔진 튜닝 관리자 시작하기를 참조하세요. 서버에 연결 대화 상자에서 SQL 서버로 연결하기를 선택합니다.

  2. 데이터베이스 엔진 튜닝 관리자 GUI 오른쪽 창의 일반 탭에서 세션 이름MySession을 입력합니다.

  3. 워크로드에 대한 파일을 선택하고 쌍안경 아이콘을 선택하여 워크로드 파일을 찾습니다. 1단계에서 저장한 MyScript.sql 파일을 찾습니다.

이전에 저장한 스크립트 찾기

  1. 워크로드 분석용 데이터베이스 목록에서 AdventureWorks2022을(를) 선택하고, 튜닝할 데이터베이스 및 테이블 선택 그리드에서 AdventureWorks2022을(를) 선택하고 튜닝 로그 저장을 선택합니다. 워크로드 분석용 데이터베이스는 워크로드를 튜닝할 때 데이터베이스 엔진 튜닝 관리자가 연결되는 첫 번째 데이터베이스를 지정합니다. 튜닝이 시작되면 데이터베이스 엔진 튜닝 관리자는 워크로드에 포함된 USE DATABASE 문이 지정한 데이터베이스로 연결됩니다.

db에 대한 DTA 옵션

  1. 튜닝 옵션 탭을 클릭합니다. 이 연습에 대한 튜닝 옵션을 무작위로 설정하지 않고, 잠시 시간을 내어 기본 튜닝 옵션을 검토합니다. 이 탭 페이지에 대한 도움말을 보려면 F1 키를 누릅니다. 추가 튜닝 옵션을 보려면 고급 옵션 을 클릭합니다. 고급 튜닝 옵션 대화 상자에서 도움말을 클릭하여 표시되는 튜닝 옵션에 대한 정보를 확인합니다. 취소를 클릭하여 고급 튜닝 옵션 대화 상자를 닫고 기본 옵션을 선택합니다.

DTA 튜닝 옵션

  1. 툴바에서 분석 시작 버튼을 클릭합니다. 데이터베이스 엔진 튜닝 관리자에서 작업을 분석하는 동안 진행률 탭에서 상태를 모니터링할 수 있습니다. 튜닝이 완료되면 권장 사항 탭이 표시됩니다.

    튜닝 중지 날짜 및 시간에 대한 오류가 표시되면 기본 튜닝 옵션 탭에서 중지 시간을 확인합니다. 중지 날짜 및 시간이 현재 날짜 및 시간보다 앞서있는지 확인하고 필요한 경우 변경합니다.

DTA 분석 시작

  1. 분석이 완료되면 동작 메뉴에서 권장 사항 저장을 클릭하여 권장 사항을 Transact-SQL 스크립트로 저장합니다. 다른 이름으로 저장 대화 상자에서 권장 사항 스크립트를 저장할 디렉터리로 이동하여 파일 이름 MyRecommendations를 입력합니다.

DTA 권장 사항 저장

튜닝 권장 사항 보기

  1. 권장 사항 탭에서 탭 페이지 맨 아래에 있는 스크롤 막대를 사용하여 모든 인덱스 권장 사항 열을 볼 수 있습니다. 각 행은 데이터베이스 엔진 튜닝 관리자가 삭제하거나 만들도록 권장하는 데이터베이스 개체(인덱스 또는 인덱싱된 뷰)를 나타냅니다. 가장 오른쪽 열로 스크롤하여 정의를 클릭합니다. 데이터베이스 엔진 튜닝 관리자는 해당 행에서 데이터베이스 개체를 생성하거나 삭제하는 Transact-SQL 스크립트를 볼 수 있는 SQL 스크립트 미리 보기 창을 표시합니다. 미리 보기 창을 닫으려면 닫기를 클릭합니다.

    링크가 포함된 정의를 찾는 것이 어려울 경우, 탭 페이지 아래쪽에 있는 기존 개체 표시 확인란을 클릭하여 선택을 취소하면 표시되는 행 수가 줄어듭니다. 이 확인란의 선택을 취소하면 데이터베이스 엔진 튜닝 관리자 권장 사항을 생성한 개체만 표시됩니다. 현재 AdventureWorks2022 데이터베이스 내에 있는 모든 데이터베이스 개체를 보려면 기존 개체 표시 확인란을 선택합니다. 탭 페이지의 오른쪽에 있는 스크롤 막대를 사용하여 모든 개체를 볼 수 있습니다.

DTA 인덱스 권장 사항

  1. 인덱스 권장 사항 창에서 그리드를 마우스 오른쪽으로 클릭합니다. 그러면 메뉴가 활성화되며 권장 사항을 선택하거나 선택 취소할 수 있습니다. 그리드 텍스트의 글꼴을 변경할 수도 있습니다.

인덱스 권장 사항에 대한 선택 메뉴

  1. 동작 메뉴에서 권장 사항 저장을 클릭하여 모든 권장 사항을 하나의 Transact-SQL 스크립트에 저장합니다. 스크립트 이름은 MySessionRecommendations.sql로 지정하세요.

    SQL Server Management Studio의 쿼리 편집기에서 MySessionRecommendations.sql 스크립트를 열어 확인합니다. 쿼리 편집기 내의 스크립트를 실행하여 AdventureWorks2022 샘플 데이터베이스에 권장 사항을 적용할 수 있지만, 이 작업은 수행하지 않습니다. 쿼리 편집기에서 스크립트를 실행하지 않고 닫습니다.

    또는 데이터베이스 엔진 튜닝 관리자의 동작 메뉴에서 권장 사항 적용을 클릭하여 권장 사항을 적용할 수도 있지만 이번 연습에서는 이러한 권장 사항을 적용하지 마세요.

  2. 권장 사항 탭에 권장 사항이 두 개 이상 있는 경우, 인덱스 권장 사항 그리드에서 데이터베이스 개체를 나열하는 일부 행을 지웁니다.

  3. 동작 메뉴에서 권장 사항 평가를 클릭합니다. 데이터베이스 엔진 튜닝 관리자는 MySession에서 원래 권장 사항의 하위 집합을 평가할 수 있는 새 튜닝 세션을 만듭니다.

  4. 세션 이름EvaluateMySession을 입력하고, 툴바에서 분석 시작 버튼을 클릭합니다. 이 새 튜닝 세션에 대해 2단계와 3단계를 반복하여 권장 사항을 볼 수 있습니다.

요약

세션을 실행한 후 튜닝 옵션을 변경해야 하는 경우 튜닝 권장 사항의 하위 집합을 평가해야 할 수 있습니다. 예를 들어 세션에 대한 튜닝 옵션을 지정할 때 데이터베이스 엔진 튜닝 관리자 인덱싱된 뷰를 고려하도록 요청하지만, 권장 사항이 생성된 후에는 인덱싱된 뷰를 사용하지 않기로 결정합니다. 그런 다음 작업 메뉴에서 권장 사항 평가 옵션을 선택하면 인덱싱된 뷰를 고려하지 않고 세션을 재평가할 데이터베이스 엔진 튜닝 관리자가 나옵니다. 권장 사항 평가 옵션을 사용하는 경우, 이전에 생성된 권장 사항은 두 번째 튜닝 세션의 실제 디자인에 도달하도록 현재 실제 디자인에 가설적으로 적용됩니다.

이 단원의 다음 작업에 설명되어 있는 보고서 탭에서 더 많은 튜닝 결과 정보를 볼 수 있습니다.

튜닝 보고서 보기

튜닝 결과를 구현하는 데 사용할 수 있는 스크립트를 보는 것도 유용하지만 데이터베이스 엔진 튜닝 관리자도 여러 가지 유용한 보고서를 제공합니다. 이러한 보고서는 튜닝하는 데이터베이스의 기존 실제 디자인 구조 및 권장 구조에 대한 정보를 제공합니다. 튜닝 보고서는 다음 연습에서 설명하는 대로 보고서 탭을 클릭하여 볼 수 있습니다.

  1. 데이터베이스 튜닝 관리자에서 보고서 탭을 선택합니다.

  2. 튜닝 요약 창에서 이 튜닝 세션에 대한 정보를 볼 수 있습니다. 스크롤 막대를 넘겨 모든 창 내용을 볼 수 있습니다. 예상 백분율 개선권장 사항에서 사용하는 공간을 확인합니다. 튜닝 옵션을 설정할 때 권장 사항에서 사용하는 공간을 제한할 수 있습니다. 튜닝 옵션 탭에서 고급 옵션을 선택합니다. 권장 사항에 필요한 최대 공간 정의를 선택하고, 권장 구성이 사용할 수 있는 최대 공간(MB)을 지정합니다. 도움말 브라우저의 뒤로 버튼을 눌러 이 자습서로 돌아옵니다.

    DTA 튜닝 요약

  3. 보고서 튜닝 창의 보고서 선택 목록에서 문 비용 보고서를 클릭합니다. 보고서를 볼 수 있는 공간이 더 필요한 경우 세션 모니터 창 테두리를 왼쪽으로 끌어옵니다. 데이터베이스의 테이블에 대해 실행되는 각 Transact-SQL 문에는 성능 비용이 연결되어 있습니다. 테이블 내 자주 액세스하는 열에 효과적인 인덱스를 만들어 이 성능 비용을 줄일 수 있습니다. 이 보고서는 워크로드에서 문을 실행하는 원래 비용과 튜닝 권장 사항이 구현되는 경우 비용 간의 예상 백분율 향상을 보여줍니다. 보고서에 포함된 정보의 양은 작업의 길이와 복잡성에 따라 달라집니다.

    DTA 보고서 - 문 비용

  4. 표 영역에서 문 비용 보고서 창을 마우스 오른쪽 단추로 클릭하고 파일로 내보내기를 클릭합니다. 보고서를 MyReport로 저장합니다. 파일 이름에 .xml 확장명이 자동으로 추가됩니다. 즐겨 찾는 XML 편집기 또는 SQL Server Management Studio에서 MyReport.xml을 열어 보고서 내용을 볼 수 있습니다.

  5. 데이터베이스 엔진 튜닝 관리자 보고서 탭으로 돌아가서 문 비용 보고서를 다시 마우스 오른쪽으로 클릭합니다. 다른 옵션을 사용할 수도 있습니다. 보고 있는 보고서의 글꼴을 변경할 수 있습니다. 여기에서 글꼴을 변경하면 다른 탭 페이지에서도 변경됩니다.

  6. 보고서 선택 목록에서 다른 보고서를 클릭하여 해당 보고서를 숙지합니다.

요약

MySession 튜닝 세션에 대한 데이터베이스 엔진 튜닝 관리자 GUI의 보고서 탭을 살펴보셨습니다. 이와 같은 단계를 거쳐 EvaluateMySession 튜닝 세션에 대해 생성된 보고서를 탐색할 수 있습니다. 세션 모니터 창에서 EvaluateMySession을 두 번 클릭합니다.

다음 단원:

3단원: DTA 명령 프롬프트 유틸리티 사용