성능 모니터링 및 튜닝 도구
적용 대상: SQL Server
Microsoft SQL Server는 SQL Server에서 이벤트를 모니터링하고 실제 데이터베이스 디자인을 튜닝하기 위한 포괄적인 도구 집합을 제공합니다. 도구를 선택하는 기준은 수행된 모니터링 또는 튜닝 유형과 모니터링할 이벤트에 따라 결정됩니다.
SQL Server 모니터링 및 튜닝 도구는 다음과 같습니다.
도구 | 설명 |
---|---|
기본 제공 함수 | 기본 제공 함수는 서버가 시작된 이후 SQL Server 활동에 대한 스냅샷 통계를 표시합니다. 이러한 통계는 미리 정의된 SQL Server 카운터에 저장됩니다. 예를 들어 @@CPU_BUSY 에는 CPU가 SQL Server 코드를 실행한 시간이 포함되고 @@CONNECTIONS 에는 SQL Server 연결 수나 시도 횟수가 포함되며 @@PACKET_ERRORS 에는 SQL Server 연결에서 발생한 네트워크 패킷 수가 포함됩니다. |
DBCC 문 | DBCC(데이터베이스 콘솔 명령) 문을 사용하면 성능 통계 및 데이터베이스의 논리적, 물리적 일관성을 검사할 수 있습니다. |
DTA(데이터베이스 엔진 튜닝 관리자) | 데이터베이스 엔진 튜닝 관리자는 튜닝하려는 데이터베이스에 대해 실행된 Transact-SQL 문의 성능 효과를 분석합니다. 데이터베이스 엔진 튜닝 관리자는 인덱스, 인덱싱된 뷰 및 분할을 추가, 제거 또는 수정하기 위한 권장 사항을 제공합니다. |
DEA(데이터베이스 실험 도우미) | DEA(데이터베이스 실험 도우미)는 SQL Server를 위한 새로운 A/B 테스트 솔루션입니다. 지정된 워크로드에 대해 두 가지 버전의 SQL Server 데이터베이스 엔진을 비교할 수 있습니다. 이전 SQL Server 버전(SQL Server 2005(9.x)부터)에서 최신 버전의 SQL Server로 업그레이드하는 경우, DEA는 비교 분석 메트릭을 제공할 수 있습니다. |
오류 로그 | Windows 애플리케이션 이벤트 로그에서 Windows Server 및 Windows 운영 체제 전체와 SQL Server, SQL Server 에이전트 및 전체 텍스트 검색에서 발생하는 이벤트의 전반적인 상태를 확인할 수 있습니다. 다른 곳에서는 사용할 수 없는 SQL Server의 이벤트에 대한 정보가 포함되어 있습니다. 오류 로그에 있는 정보를 사용하여 SQL Server 관련 문제를 해결할 수 있습니다. |
확장 이벤트 | 확장 이벤트는 성능 리소스를 매우 적게 사용하는 간단한 성능 모니터링 시스템입니다. 확장 이벤트는 두 가지 그래픽 사용자 인터페이스(새로운 세션 마법사와 새로운 세션 및 XE Profiler)를 제공하므로 세션 데이터를 작성, 수정, 표시 및 분석할 수 있습니다. |
실행 관련 동적 관리 뷰 및 함수(Transact-SQL) | 실행 관련 DMV를 사용하면 실행 관련 정보를 확인할 수 있습니다. |
LQS(라이브 쿼리 통계) | 쿼리 실행 단계에 대한 실시간 통계를 표시합니다. 이 데이터는 쿼리가 실행되는 동안 사용할 수 있으므로 이 실행 통계는 쿼리 성능 문제를 디버깅할 때 매우 유용합니다. |
리소스 자원 배정 현황 모니터링(시스템 모니터) | 시스템 모니터는 사용 중인 버퍼 관리자 페이지 요청 수와 같은 리소스 사용량을 주로 추적하여, 미리 정의된 개체 및 카운터 또는 사용자 정의 카운터를 사용하여 서버 성능 및 활동을 통해 이벤트를 모니터링할 수 있도록 합니다. 시스템 모니터(Microsoft Windows NT 4.0의 성능 모니터)는 이벤트에 대한 데이터(예: 메모리 사용량, 활성 트랜잭션 수, 차단된 잠금 수 또는 CPU 작업)가 아닌 개수와 속도를 수집합니다. 특정 카운터에 대한 임계값을 설정하여 운영자에게 알리는 경고를 생성할 수 있습니다. 시스템 모니터는 Microsoft Windows Server 및 Windows 운영 체제에서 작동합니다. Windows NT 4.0 이상에서는 SQL Server 인스턴스를 원격 또는 로컬로 모니터링할 수 있습니다. SQL Server Profiler와 시스템 모니터의 주요 차이점은 SQL Server Profiler가 데이터베이스 엔진 이벤트를 모니터링하는 반면, 시스템 모니터는 서버 프로세스와 관련된 리소스 사용량을 모니터링한다는 것입니다. |
작업 모니터 열기(SQL Server Management Studio) | SQL Server Management Studio의 활동 모니터는 현재 활동의 임시 보기에 유용하며, 다음에 대한 정보를 그래픽으로 표시합니다. - SQL Server 인스턴스에서 실행되는 프로세스 - 차단된 프로세스 - 잠금 - 사용자 작업 |
성능 대시보드 | SQL Server Management Studio의 성능 대시보드는 SQL Server에 현재 성능 병목 상태가 있는지 여부를 신속하게 식별하는 데 도움이 됩니다. |
QTA(쿼리 튜닝 도우미) | QTA(쿼리 튜닝 길잡이) 기능은 쿼리 저장소 사용 시나리오의 SQL Server의 최신 버전으로 업그레이드하는 동안 성능 안정성 유지 섹션에 설명된 대로 최신 버전으로 업그레이드하는 동안 성능 안정성을 유지하기 위해 사용자에게 권장되는 워크플로를 안내합니다. |
쿼리 저장소 | 쿼리 저장소 기능은 사용자에게 쿼리 계획 선택 및 성능에 대한 인사이트를 제공합니다. 쿼리 계획 변경으로 인해 발생하는 성능 차이를 신속하게 찾을 수 있도록 하여 성능 문제 해결을 간소화합니다. 쿼리 저장소는 쿼리, 계획 및 런타임 통계의 기록을 자동으로 캡처하고 사용자 검토를 위해 보관합니다. 데이터를 기간별로 구분하여 데이터베이스 사용 패턴을 파악하고 서버에서 쿼리 계획 변경이 발생한 시기를 이해할 수 있게 해줍니다. |
SQL 추적 | 추적을 만들고 필터링하고 정의하는 Transact-SQL 저장 프로시저: sp_trace_create(Transact-SQL) sp_trace_generateevent(Transact-SQL) sp_trace_setevent(Transact-SQL) sp_trace_setfilter(Transact-SQL) sp_trace_setstatus(Transact-SQL) |
SQL Server Distributed Replay | Microsoft SQL Server Distributed Replay는 여러 컴퓨터를 사용하여 추적 데이터를 재생하고 중요 업무용 워크로드를 시뮬레이트할 수 있습니다. |
sp_trace_setfilter(Transact-SQL) | SQL Server Profiler는 일괄 처리 또는 트랜잭션의 시작과 같은 엔진 프로세스 이벤트를 추적하여 서버 및 데이터베이스 작업(예: 교착 상태, 심각한 오류 또는 로그인 활동)을 모니터링할 수 있도록 합니다. 나중에 분석을 위해 SQL Server 테이블 또는 파일에 SQL Server Profiler 데이터를 캡처할 수 있으며, SQL Server에서 캡처한 이벤트를 단계별로 재생하여 정확히 어떤 일이 일어났는지 확인할 수도 있습니다. |
시스템 저장 프로시저(Transact-SQL) | 다음 SQL Server 시스템 저장 프로시저는 다양한 모니터링 작업에 대한 강력한 대안을 제공합니다. sp_who(Transact-SQL): 문이 차단되었는지 여부와 현재 실행 중인 문을 비롯하여 현재 SQL Server 사용자 및 프로세스에 대한 스냅샷 정보를 보고합니다. sp_lock(Transact-SQL): 개체 ID, 인덱스 ID, 잠금 유형, 잠금이 적용되는 형식 또는 리소스를 비롯하여 잠금에 대한 스냅샷 정보를 보고합니다. sp_spaceused(Transact-SQL): 테이블(또는 전체 데이터베이스)에서 사용하는 현재 디스크 공간의 예상 크기를 표시합니다. sp_monitor(Transact-SQL): CPU 사용량, I/O 사용량 및 sp_monitor가 마지막으로 실행된 이후 유휴 시간을 비롯한 통계를 표시합니다. |
추적 플래그(Transact-SQL) | 추적 플래그는 서버에서 특정 작업에 대한 정보를 표시하며 문제점이나 교착 상태 체인과 같은 성능 문제를 진단하는 데 사용됩니다. |
모니터링 도구 선택
모니터링 도구의 선택은 모니터링할 이벤트 또는 활동에 따라 달라집니다.
이벤트/작업 | 확장 이벤트 | SQL Server Profiler | Distributed Replay | 시스템 모니터 | 활동 모니터 | Transact-SQL | 오류 로그 | 성능 대시보드 |
---|---|---|---|---|---|---|---|---|
추세 분석 | 예 | 예 | 예 | |||||
캡처한 이벤트 재생 | 예(단일 컴퓨터에서) | 예(여러 컴퓨터에서) | ||||||
임시 모니터링 | 예1 | 예 | 예 | 예 | 예 | 예 | ||
경고 생성 | 예 | |||||||
그래픽 인터페이스 | 예 | 예 | 예 | 예 | 예 | 예 | ||
사용자 지정 애플리케이션 내에서 사용 | 예 | 예2 | 예 |
1 SQL Server Management Studio XEvent Profiler 사용
2 SQL Server Profiler 시스템 저장 프로시저 사용.
Windows 모니터링 도구
Windows 운영 체제 및 Windows Server 2003은 이러한 모니터링 도구도 제공합니다.
도구 | 설명 |
---|---|
작업 관리자 | 시스템에서 실행되는 프로세스와 애플리케이션의 개요를 보여 줍니다. |
성능 모니터 | 시스템 리소스를 모니터링합니다. |
Windows 애플리케이션 이벤트 로그 | SQL Server 및 기타 애플리케이션에서 생성된 애플리케이션 이벤트를 봅니다. |
Windows 방화벽 | Windows 방화벽에는 차단되고 허용된 트래픽의 모니터링 기능이 있습니다. |
Windows 운영 체제 또는 Windows Server 도구에 대한 자세한 내용은 Windows 설명서를 참조하세요.