분할된 데이터베이스 맵 관리자의 성능을 추적하는 성능 카운터 만들기
적용 대상: Azure SQL Database
성능 카운터는 데이터 종속 라우팅 작업의 성능을 추적하는 데 사용됩니다. 이러한 카운터는 “Elastic Database: 분할된 관리" 범주 아래 성능 모니터에서 액세스할 수 있습니다.
특히 데이터 종속 라우팅을 사용하는 경우 분할 맵 관리자의 성능을 캡처할 수 있습니다. 카운터는 Microsoft.Azure.SqlDatabase.ElasticScale.Client 클래스의 메서드를 사용하여 만들어집니다.
최신 버전은Microsoft.Azure.SqlDatabase.ElasticScale.Client로 이동합니다. 참고 항목: 최신 탄력적 데이터베이스 클라이언트 라이브러리를 사용하도록 앱 업그레이드.
필수 조건
- 성능 범주 및 카운터를 만들려면 사용자가 애플리케이션을 호스팅하는 컴퓨터에서 로컬 관리자 그룹의 일부여야 합니다.
- 성능 카운터 인스턴스를 만들고 카운터를 업데이트하려면 사용자가 관리자 또는 성능 모니터 사용자자 그룹의 구성원이어야 합니다.
성능 범주 및 카운터 만들기
카운터를 만들려면 ShardMapManagementFactory 클래스의 CreatePerformanceCategoryAndCounters 메서드를 호출합니다. 관리자만 메서드를 실행할 수 있습니다.
ShardMapManagerFactory.CreatePerformanceCategoryAndCounters()
이 메서드는 다음과 같은 성능 카운터를 생성합니다:
- 캐시된 매핑: 분할된 맵에 대해 캐시된 매핑의 수.
- DDR operations/sec: 분할된 데이터베이스 맵에 대한 데이터 종속 라우팅 작업의 비율입니다. 이 카운터는 OpenConnectionForKey() 결과를 호출하여 대상 샤드에 성공적으로 연결되면 업데이트됩니다.
- 매핑 조회 캐시 적중/초: 분할된 맵의 매핑에 대한 성공적인 캐시 조회 작업의 속도.
- 매핑 조회 캐시 누락/초: 분할된 맵의 매핑에 대해 실패한 캐시 조회 작업의 속도.
- 캐시/초 단위로 매핑 추가 또는 업데이트: 분할된 맵에 대해 캐시에 매핑이 추가되거나 업데이트되는 속도.
- 캐시/초에서 제거된 매핑: 분할된 데이터베이스 맵에 대한 매핑이 캐시에서 제거되는 비율입니다.
성능 카운터는 프로세스당 캐시된 각 분할된 데이터베이스 맵에 대해 만들어집니다.
주의
다음 이벤트는 성능 카운터 생성을 트리거합니다.
- ShardMapManager에 분할된 맵이 포함된 경우, 즉시 로드를 통한 ShardMapManager 초기화. 여기에는 GetSqlShardMapManager 및 TryGetSqlShardMapManager 메서드가 포함됩니다.
- 분할된 맵의 성공적인 조회(GetShardMap(), GetListShardMap() 또는 GetRangeShardMap() 사용).
- CreateShardMap()을 사용하여 분할된 데이터베이스 맵을 성공적으로 만들었습니다.
성능 카운터는 분할된 맵과 매핑에 수행되는 모든 캐시 작업에 의해 업데이트됩니다. DeleteShardMap()을 사용하여 분할된 데이터베이스 맵을 성공적으로 제거하면 성능 카운터 인스턴스가 삭제됩니다.
모범 사례
- 성능 범주 및 카운터 생성은 ShardMapManager 개체를 만들기 전에 한 번만 수행되어야 합니다. CreatePerformanceCategoryAndCounters() 명령을 실행할 때마다 이전 카운터(모든 인스턴스에서 보고한 데이터 손실)가 지워지고 새 카운터가 만들어집니다.
- 성능 카운터 인스턴스는 프로세스별로 만들어집니다. 애플리케이션이 캐시에서 분할된 데이터베이스 맵을 충돌하거나 제거하면 성능 카운터 인스턴스가 삭제됩니다.
참고 항목
관련 콘텐츠
아직 탄력적인 데이터베이스 도구를 사용 하지 않나요? 시작 가이드를 확인합니다. 질문이 있는 경우 SQL Database에 대한 Microsoft Q&A 질문 페이지에서 문의하고, 기능 요청이 있는 경우 SQL Database 사용자 의견 포럼에서 새로운 아이디어를 추가하거나 기존 아이디어에 투표해 주세요.