SQL Server 구성 요소 모니터링
적용 대상: SQL Server
SQL Server는 동적 환경에서 서비스를 제공하기 때문에 모니터링이 중요합니다. 애플리케이션의 데이터는 변경됩니다. 액세스 유형은 사용자가 변경해야 합니다. 사용자가 연결하는 방법이 바뀔 뿐 아니라, SQL Server에 액세스하는 애플리케이션 유형도 변경될 수 있지만 SQL Server는 메모리 및 디스크 공간과 같은 시스템 수준 리소스를 자동으로 관리하여 광범위한 시스템 수준 수동 튜닝의 필요성을 최소화합니다. 모니터링을 통해 관리자는 성능 추세를 파악하여 변경이 필요한지 확인할 수 있습니다.
SQL Server의 구성 요소를 효과적으로 모니터링하려면 다음을 수행합니다.
- 모니터링 목표를 결정합니다.
- 적절한 도구를 선택합니다.
- 모니터링할 구성 요소를 식별합니다.
- 해당 구성 요소에 대한 메트릭을 선택합니다.
- 서버를 모니터링합니다.
- 데이터를 분석합니다.
이 단계는 아래에서 차례로 설명합니다.
모니터링 목표 결정
SQL Server를 효과적으로 모니터링하려면 모니터링 이유를 명확하게 파악해야 합니다. 이유는 다음과 같습니다.
- 성능의 기준을 설정합니다.
- 시간에 따른 성능 변화를 파악합니다.
- 특정 성능 문제를 진단합니다.
- 최적화할 구성 요소 또는 프로세스를 식별합니다.
- 다양한 클라이언트 애플리케이션이 성능에 미치는 영향을 비교합니다.
- 사용자 작업을 감사합니다.
- 다른 부하에서 서버를 테스트합니다.
- 데이터베이스 아키텍처를 테스트합니다.
- 유지 관리 일정을 테스트합니다.
- 백업 및 복원 계획을 테스트합니다.
- 하드웨어 구성을 수정할 시점을 결정합니다.
적절한 도구 선택
모니터링하는 이유를 결정한 후에는 해당 유형의 모니터링에 적합한 도구를 선택해야 합니다. Windows 운영 체제 및 SQL Server는 트랜잭션 집약적 환경에서 서버를 모니터링하는 전체 도구 집합을 제공합니다. 이러한 도구를 통해 SQL Server 데이터베이스 엔진의 인스턴스나 SQL Server Analysis Services 인스턴스의 상태를 분명하게 알 수 있습니다.
Windows는 서버에서 실행되는 애플리케이션을 모니터링하는 다음 도구를 제공합니다.
- 성능 모니터 시작(Windows)를 사용하면 메모리, 디스크 및 프로세서 사용 등 작업에 대한 실시간 데이터를 수집하고 확인할 수 있습니다.
- 성능 로그 및 경고
- 작업 관리자
Windows Server 또는 Windows 도구에 대한 자세한 내용은 Windows 설명서를 참조하세요.
SQL Server에서는 SQL Server의 구성 요소를 모니터링할 수 있는 다음과 같은 도구를 제공합니다.
- 확장 이벤트 개요
- SQL 추적
- SQL Server Profiler
- SQL Server Distributed Replay
- 활동 모니터
- SQL Server Management Studio 그래픽 실행 계획
- 시스템 저장 프로시저
- DBCC(데이터베이스 콘솔 명령)
- 시스템 동적 관리 뷰
- SQL 데이터베이스 함수란?
- 추적 플래그
Important
SQL 추적 및 SQL Server Profiler는 사용되지 않습니다. Microsoft SQL Server 추적 및 재생 개체를 포함한 Microsoft.SqlServer.Management.Trace 네임 스페이스도 사용되지 않습니다.
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
대신 확장 이벤트를 사용합니다. 확장 이벤트 개요에 대한 자세한 내용은 빠른 시작: SQL Server의 확장 이벤트 및 SSMS XEvent Profiler 사용을 참조하세요.
참고 항목
분석 서비스 워크로드용 SQL Server Profiler는 더 이상 사용되지 않으며 계속 지원됩니다.
SQL Server 모니터링 도구에 대한 자세한 내용은 성능 모니터링 및 튜닝 도구를 참조하세요.
모니터링할 구성 요소 식별
SQL Server 인스턴스를 모니터링하는 세 번째 단계는 모니터링할 구성 요소를 식별하는 것입니다. 예를 들어 SQL Server Profiler를 사용하여 서버를 추적하는 경우 추적을 정의하여 특정 이벤트에 대한 데이터를 수집할 수 있습니다. 해당 상황에 적용되지 않는 이벤트는 제외할 수도 있습니다.
모니터링되는 구성 요소의 메트릭 선택
모니터링할 구성 요소를 식별했으면 모니터링할 구성 요소의 메트릭을 결정합니다. 예를 들어 추적에 포함할 이벤트를 선택한 후 이벤트에 대한 특정 데이터만 포함하도록 선택할 수 있습니다. 추적에 관련된 데이터로 추적을 제한하면 추적하는 데 필요한 시스템 리소스를 최소한으로 줄일 수 있습니다.
서버 모니터링
서버를 모니터링하려면 데이터를 수집하도록 구성한 모니터링 도구를 실행합니다. 예를 들어 추적이 정의되면 추적을 실행하여 서버에서 발생한 이벤트에 대한 데이터를 수집할 수 있습니다.
데이터 분석
추적이 완료되면 데이터를 분석하여 모니터링 목표가 달성되었는지 확인합니다. 달성되지 않은 경우 서버를 모니터링하는 데 사용한 구성 요소 또는 메트릭을 수정합니다.
다음은 이벤트 데이터를 캡처하고 배치하여 사용하는 프로세스를 간략하게 설명합니다.
필터를 적용하여 수집한 이벤트 데이터를 제한합니다.
이벤트 데이터를 제한하면 시스템에서 모니터링 시나리오와 관련한 이벤트에 집중할 수 있습니다. 예를 들어 느린 쿼리를 모니터링하려는 경우, 필터를 사용하여 특정 데이터베이스에 대해 실행하는 데 30초 이상 걸리는 애플리케이션에서 발급한 쿼리만 모니터링할 수 있습니다.
확장 이벤트 추적 필터링에 대한 자세한 내용은 빠른 시작: 확장 이벤트를 참조하세요.
SQL 추적 필터링에 대한 자세한 내용은 추적 필터 설정(Transact-SQL) 및 추적에서 이벤트 필터링(SQL Server Profiler)을 참조하세요.
이벤트를 모니터링(캡처)합니다.
모니터링을 설정하면 활성 모니터링은 지정한 애플리케이션, SQL Server의 인스턴스 또는 운영 체제에서 데이터를 즉시 캡처합니다. 예를 들어 시스템 모니터를 사용하여 디스크 작업을 모니터링하면 디스크 읽기 및 쓰기 같은 이벤트 데이터가 캡처되고 해당 데이터가 화면에 표시됩니다. 자세한 내용은 리소스 사용 모니터링(성능 모니터)를 참조하세요.
캡처된 이벤트 데이터를 저장합니다.
캡처된 이벤트 데이터를 저장하면 나중에 분석할 수 있습니다. 원래 분석을 위해 해당 파일을 생성한 도구로 다시 로드할 수 있는 파일에 저장되는 캡처된 이벤트 데이터입니다. 캡처된 이벤트 데이터를 저장하는 것은 성능 기준을 만들 때 중요합니다. 성능 기준 데이터는 최근에 캡처한 이벤트 데이터를 비교할 때 최적의 성능인지 여부를 확인하기 위해 저장되고 사용됩니다.
확장 이벤트를 사용하면 이벤트 파일, 이벤트 카운터, 히스토그램 및 링 버퍼에 이벤트 데이터를 저장할 수 있습니다. 자세한 내용은 확장 이벤트용 대상을 참조하세요.
Distributed Replay Utility 또는 SQL Server Profiler를 사용하여 SQL 추적 이벤트 데이터를 재생할 수도 있습니다. SQL Server Profiler는 이벤트 데이터를 파일 또는 SQL Server 테이블에 저장하도록 허용합니다. 자세한 내용은 SQL Server Profiler 템플릿 및 권한을 참조하세요.
이벤트를 캡처하도록 지정된 설정을 포함하는 추적 템플릿을 만듭니다.
추적 템플릿에는 이벤트 자체, 이벤트 데이터 및 데이터를 캡처하는 데 사용되는 필터에 대한 사양이 포함됩니다. 이 템플릿을 사용하면 나중에 특정 이벤트 집합을 모니터링할 때 이벤트, 이벤트 데이터 및 필터를 다시 정의할 필요가 없습니다. 예를 들어 교착 상태 수와 교착 상태에 있는 사용자 수를 모니터링할 경우 해당 이벤트, 이벤트 데이터 및 이벤트 필터를 정의하는 템플릿을 만들어 저장해 두면 다음에 교착 상태를 모니터링할 때 해당 필터를 다시 적용할 수 있습니다.
확장 이벤트 세션 정의는 스크립팅 및 재사용할 수 있는 템플릿입니다. 세션을 만들고 관리하려면 개체 탐색기 이벤트 세션 관리를 참조하세요. Management Studio XEvent Profiler는 바로 사용할 수 있는 템플릿을 제공합니다. 자세한 내용은 SSMS XEvent Profiler 사용을 참조하세요.
SQL Server Profiler는 이 용도로 추적 템플릿을 사용합니다. 자세한 내용은 추적 정의 기본값 설정(SQL Server Profiler) 및 추적 템플릿 만들기(SQL Server Profiler)를 참조하세요.
팁
SQL 추적 정의를 확장 이벤트 세션으로 변환할 수 있습니다. 자세한 내용은 기존 SQL 추적 스크립트를 확장 이벤트 세션으로 변환을 참조하세요.
캡처된 이벤트 데이터를 분석합니다.
분석을 위해 캡처된 이벤트 데이터가 데이터를 캡처한 애플리케이션에 로드됩니다.
예를 들어 확인 및 분석을 위해 캡처한 확장 이벤트 추적을 SQL Server Management Studio로 다시 로드할 수 있습니다. 자세한 내용은 SQL Server Management Studio에서 이벤트 데이터 보기를 참조하세요.
보기 및 분석을 위해 SQL 추적 데이터를 SQL Server Profiler로 다시 로드할 수 있습니다. 더 많은 정보는 SQL Server Profiler를 사용하여 추적 보기 및 분석을 참조하세요.
이벤트 데이터를 분석하려면 발생하는 이벤트와 이유를 결정해야 합니다. 이 정보를 사용하면 수행된 분석 유형에 따라 메모리를 추가하거나 인덱스를 변경하거나 Transact-SQL 문 또는 저장 프로시저의 코딩 문제를 수정하는 등 성능 향상에 필요한 사항을 변경할 수 있습니다. 예를 들어 데이터베이스 엔진 튜닝 관리자를 사용하여 확장 이벤트 또는 SQL Server Profiler에서 캡처된 추적을 분석하고 결과에 따라 인덱스 권장 사항을 만들 수 있습니다.
캡처된 이벤트 데이터를 재생합니다(선택 사항).
이벤트 재생을 사용하면 데이터가 캡처된 데이터베이스 환경의 테스트 복사본을 설정한 다음 캡처된 이벤트를 실제 시스템에서 원래 발생한 대로 반복할 수 있습니다. 이 기능은 Distributed Replay Utility나 SQL Server Profiler를 통해서만 사용할 수 있습니다. 이벤트 재생 속도는 이벤트가 원래 발생한 속도와 같게 하거나 최대한 빠르게 하거나 한 번에 한 단계씩 재생하여 각 이벤트가 발생한 후 시스템을 분석할 수도 있습니다. 테스트 환경에서 정확한 이벤트를 분석하여 프로덕션 시스템에 대한 피해를 방지할 수 있습니다. 자세한 내용은 추적 재생을 참조하세요.