성능 모니터링 및 튜닝 도구

Microsoft SQL Server는 SQL Server의 이벤트를 모니터링하고 물리적 데이터베이스 디자인을 튜닝하는 여러 가지 도구를 제공합니다. 도구를 선택하는 기준은 수행된 모니터링 또는 튜닝 유형과 모니터링할 이벤트에 따라 결정됩니다.

SQL Server 모니터링 및 튜닝 도구는 다음과 같습니다.

도구

설명

sp_trace_setfilter(Transact-SQL)

SQL Server 프로파일러는 일괄 처리나 트랜잭션 시작 같은 엔진 프로세스 이벤트를 추적하므로 서버와 데이터베이스 작업(예: 교착 상태, 치명적 오류 또는 로그인 작업)을 모니터링할 수 있습니다. SQL Server 프로파일러 데이터를 SQL Server 테이블이나 파일에 캡처해 나중에 분석할 때 사용할 수 있으며 SQL Server에 캡처한 이벤트를 단계별로 재생해 발생한 이벤트를 정확하게 확인할 수도 있습니다.

리소스 사용 모니터링(시스템 모니터)

시스템 모니터는 주로 사용 중인 버퍼 관리자 페이지 요청 수 같은 리소스 사용을 추적하므로 이벤트를 모니터링할 미리 정의된 개체와 카운터 또는 사용자 정의된 카운터를 사용하여 서버 성능과 작업을 모니터링할 수 있습니다. 시스템 모니터(Microsoft Windows NT 4.0의 성능 모니터)는 이벤트에 대한 데이터(예: 메모리 사용량, 활성 트랜잭션 수, 차단된 잠금 수 또는 CPU 작업)보다는 개수와 속도를 수집합니다. 특정 카운터에 대해 운영자에게 경고 메시지를 보내도록 임계값을 설정할 수도 있습니다.

시스템 모니터는 Microsoft Windows Server 및 Windows 운영 체제에서 작동합니다. 시스템 모니터는 Windows NT 4.0 이상에서 SQL Server 인스턴스를 원격 또는 로컬로 모니터링할 수 있습니다.

SQL Server 프로파일러 및 시스템 모니터의 주요 차이점은 SQL Server 프로파일러는 데이터베이스 엔진 이벤트를 모니터링하지만 시스템 모니터는 서버 프로세스와 연관된 리소스 사용량을 모니터링하는 것입니다.

방법: 작업 모니터 열기(SQL Server Management Studio)

SQL Server Management Studio의 작업 모니터는 다음과 같은 정보를 그래픽으로 표시합니다.

  • SQL Server 인스턴스에서 실행 중인 프로세스

  • 차단된 프로세스

  • 잠금

  • 사용자 작업

이 기능은 현재 작업을 임시로 볼 때 유용합니다.

SQL Trace 소개

추적을 작성, 필터링 및 정의하는 Transact-SQL 저장 프로시저는 다음과 같습니다.

오류 로그 모니터링

Windows 응용 프로그램 이벤트 로그는 Windows Server 및 Windows 운영 체제 전체에서 발생하는 이벤트뿐만 아니라 SQL Server, SQL Server 에이전트의 이벤트와 전체 텍스트 검색을 전반적으로 보여 줍니다. 이 이벤트 로그에는 다른 곳에서 사용할 수 없는 SQL Server의 이벤트 정보가 포함됩니다. 오류 로그에 있는 정보를 사용하여 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)sp_monitor가 마지막으로 실행된 이후의 CPU 사용량, I/O 사용량 및 유휴 시간 양을 포함하는 통계를 표시합니다.

DBCC(Transact-SQL)

DBCC(데이터베이스 콘솔 명령) 문을 사용하면 성능 통계 및 데이터베이스의 논리적, 물리적 일관성을 검사할 수 있습니다.

기본 제공 함수(Transact-SQL)

기본 제공 함수는 서버가 시작된 이후 SQL Server 작업에 대한 스냅숏 통계를 표시하며 이러한 통계는 미리 정의된 SQL Server 카운터에 저장됩니다. 예를 들어 @@CPU_BUSY에는 CPU가 SQL Server 코드를 실행한 시간이 포함되고 @@CONNECTIONS에는 SQL Server 연결 수나 시도 횟수가 포함되며 @@PACKET_ERRORS에는 SQL Server 연결에서 발생한 네트워크 패킷 수가 포함됩니다.

추적 플래그(Transact-SQL)

추적 플래그는 서버에서 특정 작업에 대한 정보를 표시하며 문제점이나 교착 상태 체인과 같은 성능 문제를 진단하는 데 사용됩니다.

물리적 데이터베이스 디자인 튜닝

데이터베이스 엔진 튜닝 관리자는 튜닝할 데이터베이스에 대해 실행된 Transact-SQL 문의 성능 영향을 분석합니다. 데이터베이스 엔진 튜닝 관리자는 인덱스, 인덱싱된 뷰 및 분할의 추가, 제거 또는 수정에 대한 권장 구성을 제공합니다.

모니터링 도구 선택

모니터링 도구 선택은 모니터링할 이벤트나 작업에 따라 결정됩니다.

이벤트/작업

SQL Server 프로파일러

시스템 모니터

작업 모니터

Transact-SQL

오류 로그

추세 분석

 

 

 

캡처한 이벤트 재생

 

 

 

 

임시 모니터링

 

경고 생성

 

 

 

 

그래픽 인터페이스

 

사용자 지정 응용 프로그램에서 사용

예1

 

 

 

1 SQL Server 프로파일러 시스템 저장 프로시저를 사용

Windows 모니터링 도구

Windows 운영 체제와 Windows Server 2003에서도 다음과 같은 모니터링 도구를 제공합니다.

도구

설명

태스크 관리자

시스템에서 실행 중인 프로세스 및 응용 프로그램의 개요를 보여 줍니다.

네트워크 모니터 에이전트

네트워크 트래픽을 모니터링합니다.

Windows 운영 체제나 Windows Server 도구에 대한 자세한 내용은 Windows 설명서를 참조하십시오.