본문 바로가기
IT/MSSQL

[MSSQL] 데이터베이스 튜닝 방법 (엔진 튜닝 관리자 사용)

by 베베야 2021. 4. 7.
728x90

데이터베이스를 튜닝하기 위해서는 여러 가지 방면에서 분석이 필요합니다.

오늘은 SQL을 분석하는 시간과 노력을 어느정도 덜어줄 '데이터베이스 엔진 튜닝 관리자'를 이용한 SQL 튜닝 방법에 대해서 알아보겠습니다.

 

사전 준비 사항

데이터베이스 튜닝 관리자를 사용하기 위해서는 3가지의 사전 준비사항이 필요합니다.

각각의 방법에 대해서는 다음의 포스팅들을 참조해 주시기 바랍니다.

 

 

1. SQL Server Management Studio(SSMS) 설치

SSMS 버전은 2016 이상만 받으면 문제없습니다.

 

[MSSQL] SSMS 다운로드 & 설치 방법 (SQL Server Management Studio)

SQL Server 데이터베이스에 접속하기 위해서는 SSMS(SQL Server Management Studio)라는 데이터베이스 관리 툴이 필요합니다. 오늘은 SSMS 다운로드 방법과 설치하는 방법 그리고 SSMS를 통해서 데이터베이스

bebeya.tistory.com

 

2. SQL Server 2016 Developer Edition을 설치

Developer Edition버전은 2019로 설치했습니다. (SQL 데이터베이스 버전과 무관)

 

[MSSQL] SQL Server 2019 Developer Edition 다운로드 및 설치 방법

SQL Server 2019 Developer는 비 프로덕션 환경에서 개발 및 테스트 데이터베이스로 사용하도록 라이선스가 제공됩니다. 모든 기능을 사용할 수 있는 무료 버전입니다. 그리고 데이터 베이스 튜닝 관리

bebeya.tistory.com

 

3. AdventureWorks2016 샘플 데이터베이스 복원

예제 데이터베이스는 SQL 버전과 동일한 버전을 다운받아야 합니다.

 

[MSSQL] AdventureWorks2016 샘플(예제) 데이터베이스 다운로드

테스트를 위한 데이터베이스를 만들고 데이터를 넣는 작업은 귀찮고 힘든 작업입니다. 오늘은 이런 문제를 해결해 주는 데이터베이스 샘플(예제)을 다운로드하는 방법에 대해서 알아보겠습니

bebeya.tistory.com

 

 

 

 

데이터베이스 튜닝 관리자 사용법

SSMS, Developer Edition 설치와 AdventureWorks2016 데이터베이스 복원까지 다 진행하였으면 튜닝 관리자를 사용해 보도록 하겠습니다.

 

1. 먼저 SQL Server Management Studio(SSMS)를 실행한 다음 아래의 샘플 SELECT 문을 복사해 쿼리 편집기에 붙여 넣습니다. 이후 MyScript.sql 이라는 이름으로 스크립트를 저장합니다.

Use [Adventureworks2016]; -- 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

MyScript.sql
0.00MB

 

2. 이후 [도구] - [데이터베이스 엔진 튜닝 관리자]를 클릭합니다.

튜닝 관리자 서버에 로그인 창이 뜨는데 sa 계정으로 로그인하세요.

 

3. [파일] - [새 세션]을 클릭해서 튜닝 설정창을 활성화하여 값을 넣습니다.

1) 세션 이름: 이름으로 원하는 이름을 지정하세요.

2) 작업 : 파일을 체크합니다.

3) 우측에 쌍안경 모양의 아이콘을 클릭해서 아까 저장해 두었던 Myscritp.sql 파일을 찾아서 넣습니다.

4) 작업 분석용 데이터베이스 : 작업튜닝을 할 때 데이터베이스 엔진 튜닝 관리자가 연결하는 첫 번째 데이터베이스입니다.  AdventureWorks2016를 선택합니다.

5) 튜닝할 데이터베이스 및 테이블 선택 : 튜닝을 진행할 데이터베이스를 선택하는 항목입니다. AdventureWorks2016를 테스트로 튜닝하기로 했기 때문에 선택해 주세요.

6) 가장 하단에 "튜닝 로그 저장"을 체크합니다.

 

 

 

4. 튜닝 옵션을 설정하는 화면입니다. 기본으로 놔두고 진행하겠습니다.

 

5. 선택한 데이터베이스의 튜닝을 시작하기 위해 "분석 시작"을 클릭합니다.

 

6. 분석이 끝나면 "권장 구성 저장"을 클릭해서 스크립트로 해당 내용을 저장합니다.

 

저장 이름은 Tuning Recommendations 으로 저장하겠습니다.

 

 

튜닝 권장 구성 보기

1. 튜닝 관리를 통해 도출된 권장 구성 정보입니다.

인덱스 생성에 대한 구문은 가장 우측에 "정의"부분을 클릭하시면 볼 수 있습니다.

해당 쿼리문으로 인덱스를 생성하시면 되지만 권장사항이기 때문에 테스트 데이터베이스에서 테스트를 해보고 하는 것을 권장드립니다.

 

해당 데이터베이스의 튜닝 권장 대상이 아닌 모든 테이블 정보를 보고 싶다면 하단에 "기존 개체 표시"를 체하면 볼 수 있습니다.

 

 

 

2. 튜닝 결과를 보고서로도 볼 수 있습니다.

[튜닝 요약]

날짜, 시간, 서버, 튜닝 소요시간, 튜닝할 데이터베이스 등등 요약된 튜닝 정보를 확인할 수 있습니다.

 

[튜닝 보고서]

다양한 보고서들이 존재합니다.

하단에 보고서를 선택해서 원하는 정보를 확인할 수 있습니다.

 

이상으로 MSSQL 데이터베이스 엔진 튜닝 관리자를 활용하여 튜닝하는 방법에 대해서 알아보았습니다.

반응형
그리드형

댓글