성능 모니터링 및 튜닝
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
데이터베이스 모니터링의 목표는 서버의 성능을 평가하는 것입니다. 효과적인 모니터링에는 문제를 일으키는 프로세스를 격리하기 위해 현재 성능의 주기적인 스냅샷을 만들고 시간이 지남에 따라 지속적으로 데이터를 수집하여 성능 추세를 추적하는 작업이 포함됩니다.
데이터베이스 성능을 지속적으로 평가하면, 응답 시간을 최소화하고 처리량을 최대화하여 최적의 성능을 얻을 수 있습니다. 효율적인 네트워크 트래픽, 디스크 I/O 및 CPU 사용량은 최고의 성능을 얻는 열쇠입니다. 애플리케이션 요구 사항을 철저히 분석하고, 데이터의 논리적 및 물리적 구조를 이해하고, 데이터베이스 사용량을 평가하고, OLTP(온라인 트랜잭션 처리) 및 의사 결정 지원과 같은 충돌하는 사용 사례 간의 장단 관계를 협상해야 합니다.
데이터베이스의 성능 모니터링 및 튜닝
Microsoft SQL Server 및 Microsoft Windows 운영 체제에서는 데이터베이스의 현재 상태를 확인하고 상태 변화에 따른 성능을 추적하는 유틸리티를 제공합니다. Microsoft SQL Server를 모니터링하는 데 사용할 수 있는 다양한 도구와 기술이 있습니다. SQL Server를 모니터링하면 다음과 같이 할 수 있습니다.
성능을 향상시킬 수 있는지 알 수 있습니다. 예를 들어 자주 사용하는 쿼리의 응답 시간을 모니터링하면 테이블에 있는 쿼리나 인덱스에 대한 변경이 필요한지 알 수 있습니다.
사용자 활동을 평가합니다. 예를 들어 SQL Server 인스턴스에 연결을 시도하는 사용자를 모니터링하여 보안 설정이 적당한지 확인하고 애플리케이션이나 개발 시스템을 테스트할 수 있습니다. 예를 들어 SQL 쿼리가 실행될 때 모니터링하여 올바르게 작성되었는지 여부를 확인하고 예상 결과를 생성할 수 있습니다.
문제 해결 또는 저장 프로시저와 같은 애플리케이션 구성 요소를 디버그합니다.
동적 환경의 모니터링
조건을 변경하면 성능이 변화합니다. 평가를 통해 사용자 수 증가, 사용자 액세스 및 연결 방법 변경, 데이터베이스 내용 증가, 클라이언트 애플리케이션 변경, 애플리케이션의 데이터 변경, 쿼리 복잡성 증가, 네트워크 소통량 증가 등에 따라 성능이 바뀌는 것을 알 수 있습니다. 도구를 사용하여 성능을 모니터링하면 성능 변화와 변화하는 조건 및 복잡한 쿼리의 상관 관계를 파악할 수 있습니다. 예:
자주 사용하는 쿼리의 응답 시간을 모니터링하면 쿼리가 실행되는 테이블에 있는 쿼리나 인덱스에 대한 변경이 필요한지 알 수 있습니다.
Transact-SQL 쿼리가 실행될 때 모니터링하여 쿼리가 올바르게 작성되었는지 여부를 확인하고 예상 결과를 생성할 수 있습니다.
SQL Server 인스턴스에 연결을 시도하는 사용자를 모니터링하여 보안 설정이 적당한지 확인하고 애플리케이션이나 개발 시스템을 테스트할 수 있습니다.
응답 시간은 결과 집합의 첫 번째 행에 필요한 시간으로, 쿼리가 처리되고 있음을 시각적으로 확인하는 형태로 사용자에게 반환됩니다. 처리량은 지정된 기간 동안 서버에서 처리한 총 쿼리 수입니다.
사용자 수가 증가함에 따라 서버 리소스에 대한 경쟁도 증가하므로, 응답 시간이 늘어나고 전체 처리량이 줄어듭니다.
모니터링 및 성능 튜닝 작업
항목 | 작업 |
---|---|
SQL Server 구성 요소 모니터링 | 활동 모니터, 확장 이벤트, 동적 관리 뷰, 함수 등 SQL Server 구성 요소를 모니터링하는 데 필요한 단계입니다. |
성능 모니터링 및 튜닝 도구 | 라이브 쿼리 통계 및 데이터베이스 엔진 튜닝 관리자와 같은 SQL Server에서 사용할 수 있는 모니터링 및 튜닝 도구를 나열합니다. |
쿼리 튜닝 도우미를 사용하여 데이터베이스 업그레이드 | 최신 데이터베이스 호환성 수준으로 업그레이드하는 동안 워크로드 성능 안정성을 유지합니다. |
쿼리 저장소를 사용한 성능 모니터링 | 쿼리 저장소를 사용하여 쿼리, 계획 및 런타임 통계의 기록을 자동으로 캡처하고 사용자 검토를 위해 보관합니다. |
성능 기준선 설정 | 성능 기준을 설정하는 방법. |
성능 문제 격리 | 데이터베이스 성능 문제를 격리합니다. |
병목 상태 식별 | 서버 성능을 모니터링하고 추적하여 병목 상태를 식별합니다. |
DMV를 사용하여 보기의 사용 통계 및 성능 확인 | 쿼리 성능에 대한 정보를 가져오는 데 사용되는 방법론 및 스크립트를 다룹니다. |
서버 성능 및 작업 모니터링 | SQL Server와 Windows 성능 및 활동 모니터링 도구를 사용합니다. |
리소스 사용 모니터링 | 시스템 모니터(성능 카운터라고도 함)를 사용하여 성능 카운터로 SQL Server의 성능을 측정합니다. |