Database Engine Tuning Advisor로 Amazon RDS for SQL Server DB 인스턴스의 데이터베이스 작업(workload) 분석

Database Engine Tuning Advisor로 Amazon RDS for SQL Server DB 인스턴스의 데이터베이스 작업(workload) 분석

Database Engine Tuning Advisor는 Microsoft가 제공하는 클라이언트 애플리케이션으로, 데이터베이스 작업을 분석하고 사용자가 실행하는 쿼리의 종류에 따라 Microsoft SQL Server 데이터베이스에 대한 최적의 인덱스 집합을 권장해요. SQL Server Management Studio와 마찬가지로 SQL Server를 실행하는 Amazon RDS DB 인스턴스에 연결하는 클라이언트 컴퓨터에서 Tuning Advisor를 실행합니다. 클라이언트 컴퓨터는 자체 네트워크 내의 온프레미스에서 실행하는 로컬 컴퓨터이거나 Amazon RDS DB 인스턴스와 같은 리전에서 실행하는 Amazon EC2 Windows 인스턴스일 수 있어요.

출처: 문서

본문

이 섹션에서는 Tuning Advisor가 분석할 작업을 캡처하는 방법을 보여줘요. Amazon RDS는 SQL Server 인스턴스에 대한 호스트 액세스를 제한하므로 이것이 작업을 캡처하는 바람직한 프로세스입니다. 자세한 내용은 Microsoft 문서의 Database Engine Tuning Advisor를 참조하세요.

Tuning Advisor를 사용하려면 어드바이저에 작업(workload)이라고 하는 것을 제공해야 합니다. 작업이란 튜닝하려는 데이터베이스에 대해 실행되는 Transact-SQL 문의 집합입니다. Database Engine Tuning Advisor는 데이터베이스를 튜닝할 때 추적 파일, 추적 테이블, Transact-SQL 스크립트 또는 XML 파일을 작업 입력으로 사용합니다. Amazon RDS로 작업할 때 작업은 클라이언트 컴퓨터의 파일이거나 클라이언트 컴퓨터에서 액세스할 수 있는 RDS for SQL Server DB의 데이터베이스 테이블일 수 있어요. 파일 또는 테이블에는 재생에 적합한 형식으로 튜닝하려는 데이터베이스에 대한 쿼리가 포함되어야 합니다.

Tuning Advisor가 가장 효과적이려면 작업이 가능한 한 현실적이어야 합니다. DB 인스턴스에 대해 추적을 수행하여 작업 파일이나 테이블을 생성할 수 있어요. 추적이 실행되는 동안 DB 인스턴스에 부하를 시뮬레이션하거나 애플리케이션을 정상 부하로 실행할 수 있습니다.

추적에는 클라이언트 측과 서버 측 두 가지 유형이 있어요. 클라이언트 측 추적은 설정하기 쉽고 SQL Server Profiler에서 추적 이벤트가 실시간으로 캡처되는 것을 볼 수 있어요. 서버 측 추적은 설정이 더 복잡하며 일부 Transact-SQL 스크립팅이 필요합니다. 또한 추적이 Amazon RDS DB 인스턴스의 파일에 기록되므로 추적이 저장 공간을 소비합니다. 실행 중인 서버 측 추적이 사용하는 저장 공간을 추적하는 것이 중요합니다. 저장 공간이 부족해지면 DB 인스턴스가 저장 공간 가득 상태가 되어 더 이상 사용할 수 없게 될 수 있기 때문입니다.

클라이언트 측 추적의 경우 SQL Server Profiler에 충분한 양의 추적 데이터가 캡처되면 로컬 컴퓨터의 파일이나 클라이언트 컴퓨터에서 사용할 수 있는 DB 인스턴스의 데이터베이스 테이블에 추적을 저장하여 작업 파일을 생성할 수 있어요. 클라이언트 측 추적의 주요 단점은 과부하 상태에서 추적이 모든 쿼리를 캡처하지 못할 수 있다는 점입니다. 이는 Database Engine Tuning Advisor가 수행하는 분석의 효과를 약화시킬 수 있어요. 과부하 상태에서 추적을 실행해야 하고 추적 세션 동안 모든 쿼리를 캡처하도록 보장하려면 서버 측 추적을 사용해야 합니다.

서버 측 추적의 경우 추적이 완료된 후 DB 인스턴스의 추적 파일을 적합한 작업 파일로 가져오거나 추적을 DB 인스턴스의 테이블에 저장할 수 있어요. SQL Server Profiler를 사용해 로컬 컴퓨터의 파일에 추적을 저장하거나 Tuning Advisor가 DB 인스턴스의 추적 테이블에서 읽게 할 수 있습니다.

더 알아보기 (Learn more)