내보내기(0) 인쇄
모두 확장

동적 관리 뷰를 사용하여 Azure SQL 데이터베이스 모니터링

업데이트 날짜: 2014년 2월

Microsoft Microsoft Azure SQL 데이터베이스에서는 동적 관리 뷰의 하위 집합을 통해 차단되거나 장기간 실행되는 쿼리, 리소스 병목 상태, 부실한 쿼리 계획 등으로 인해 발생할 수 있는 성능 문제를 진단할 수 있습니다. 이 항목에서는 Microsoft Azure SQL 데이터베이스에서 동적 관리 뷰를 사용하여 일반적인 성능 문제를 감지하는 방법에 대한 정보를 제공합니다.

Microsoft Azure SQL 데이터베이스는 다음 세 범주의 동적 관리 뷰를 부분적으로 지원합니다.

  • 데이터베이스 관련 동적 관리 뷰

  • 실행 관련 동적 관리 뷰

  • 트랜잭션 관련 동적 관리 뷰

Microsoft Azure SQL 데이터베이스에서 완전히 지원되는 동적 관리 뷰의 목록은 시스템 뷰(Azure SQL 데이터베이스)를 참조하십시오. 동적 관리 뷰에 대한 자세한 내용은 SQL Server 온라인 설명서의 동적 관리 뷰 및 함수(Transact-SQL)를 참조하십시오.

Microsoft Azure SQL 데이터베이스에서 동적 관리 뷰를 쿼리하려면 VIEW DATABASE STATE 권한이 있어야 합니다. VIEW DATABASE STATE 권한은 현재 데이터베이스 내의 모든 개체에 대한 정보를 반환합니다.

특정 데이터베이스 사용자에게 VIEW DATABASE STATE 권한을 부여하려면 다음 쿼리를 실행합니다.

GRANT VIEW DATABASE STATE TO database_user;

내부 SQL Server의 인스턴스에서 동적 관리 뷰는 서버 상태 정보를 반환합니다. Microsoft Azure SQL 데이터베이스에서는 현재 논리 데이터베이스에 대한 정보만 반환됩니다.

note참고
sys.dm_exec_requests 및 sys.dm_exec_sessions 뷰를 실행할 때 데이터베이스에 대한 VIEW DATABASE STATE 권한이 있으면 데이터베이스에 있는 모든 세션을 볼 수 있고, 그렇지 않으면 현재 세션만 볼 수 있습니다.

Azure SQL 데이터베이스의 버전과 용량에 대해 요금이 청구됩니다. 데이터베이스 크기가 해당 MAXSIZE에 도달하면 40544 오류 코드가 수신됩니다. 이 경우 데이터베이스의 MAXSIZE를 업데이트하거나 데이터를 삭제하지 않으면 데이터를 삽입 또는 업데이트하거나 테이블, 저장 프로시저, 뷰, 함수 등의 새 개체를 만들 수 없습니다. 자세한 내용은 Azure SQL 데이터베이스 계정 및 요금 청구를 참조하십시오. sys.dm_db_partition_stats 뷰는 데이터베이스 크기를 계산하는 데 사용할 수 있는 데이터베이스의 모든 부분에 대한 페이지 및 행 수 정보를 반환합니다.

다음 쿼리는 데이터베이스 크기(MB)를 반환합니다.

-- Calculates the size of the database. 

SELECT SUM(reserved_page_count)*8.0/1024

FROM sys.dm_db_partition_stats; 

GO

다음 쿼리는 데이터베이스에 있는 개별 개체의 크기(MB)를 반환합니다.

-- Calculates the size of individual database objects. 

SELECT sys.objects.name, SUM(reserved_page_count) * 8.0 / 1024

FROM sys.dm_db_partition_stats, sys.objects 

WHERE sys.dm_db_partition_stats.object_id = sys.objects.object_id 

GROUP BY sys.objects.name; 

GO

sys.dm_exec_connections(Azure SQL 데이터베이스) 뷰를 사용하여 특정 Azure SQL 데이터베이스 서버에 설정된 연결에 대한 정보와 각 연결에 대한 세부 정보를 검색할 수 있습니다. 또한 sys.dm_exec_sessions 뷰는 모든 활성 사용자 연결과 내부 태스크에 대한 정보를 검색할 때 유용합니다.

다음 쿼리는 현재 연결에 대한 정보를 검색합니다.

쿼리가 느린 속도로 또는 장시간 실행되면 상당한 시스템 리소스가 소비될 수 있습니다. 이 단원에서는 동적 관리 뷰를 사용하여 일반적인 쿼리 성능 문제를 감지하는 방법을 보여줍니다. 자세한 내용은 Microsoft TechNet의 SQL Server 2005의 성능 문제 해결 문서를 참조하십시오.

다음 예에서는 평균 CLR 시간을 기준으로 상위 5개의 쿼리에 대한 정보를 반환합니다. 이 예에서는 논리적으로 동일한 쿼리를 누적 리소스 소비량에 따라 그룹화할 수 있도록 쿼리 해시에 따라 쿼리를 집계합니다.

쿼리가 느린 속도로 또는 장기간 실행되면 과도한 리소스가 소비될 수 있으며 이는 차단된 쿼리에 따른 결과일 수 있습니다. 차단 원인은 부실한 응용 프로그램 디자인, 잘못된 쿼리 계획, 유용한 인덱스 부족 등일 수 있습니다. sys.dm_tran_locks 뷰를 사용하여 Azure SQL 데이터베이스의 현재 잠금 작업에 대한 정보를 얻을 수 있습니다. 예를 보려면 SQL Server 온라인 설명서의 sys.dm_tran_locks(Transact-SQL)를 참조하십시오.

비효율적인 쿼리 계획을 사용해도 CPU 사용량이 증가할 수 있습니다. 다음 예제에서는 sys.dm_exec_query_stats 뷰로 가장 많은 누적 CPU를 사용하는 쿼리를 확인합니다.

참고 항목

표시:
© 2014 Microsoft