2017-10-27 1 views
1

장애 조치 (failover) 서버에 대해 캡처 된 동적 관리 뷰를 분석하는 동안 DMV가 플러시되거나 SQL 엔진이 통계를 다시 설정하는 것을 관찰했습니다.
프로덕션 환경에서는 DMV를 플러시/삭제할 수 없으므로이를 기반으로 DMV를 구분합니다. 델타를 계산하는 동안 나는 이전 값의 여러 배가 현재 값보다 크다는 것을 알게되었다.
제 질문은 데이터베이스 A가 주 - 보조 서버와 같이 2 대의 서버로 AG1에 구성되어 있고 주 서버에서 보조 서버로 전환 할 때 기본 서버 통계를 재설정하고 DMV를 유발할 수있는 다른 이유는 무엇입니까? 리셋 중이 야?
또한 특정 절차에 대한 재 컴파일의 경우 DMV 통계가 재설정됩니까?SQL Server AG 장애 조치가 발생하면 어떻게됩니까?

+0

DMV가 플러시되고 정보를 보유해야하는 이유는 무엇입니까? SQL Azure Database Geo-replication 시나리오에 대한 페일 오버에 대해 말씀해 주시겠습니까? 나는 자신을 테스트하고 모든 결과를 Microsoft SQL Azure 팀과 공유하고 공유 할 수있는 피드백을 얻으려고합니다. –

+0

사내 구축 형 서버에서 DMV "sys.dm_exec_procedure_stats"의 프로 시저 통계를 캡처합니다. –

+1

SQL Server 팀에 액세스 할 권한이 없습니다. azure-sql-database 태그를보고 Azure SQL Database를 언급하고 있다고 생각했습니다. –

답변

3

장애 조치가 발생하면 한 서버에서 다른 서버로 이동합니다. Sys.dm_exec_procedure_stats는 현재 캐시에있는 프로 시저에 대한 정보를 제공합니다. 서버를 변경 했으므로 장애 조치 이후 해당 데이터베이스의 캐시에는 아무 것도 없습니다. 따라서 장애 조치 후에 한 서버에서 다른 서버로의 급격한 차이를 보게됩니다.

정보를 재설정하지 않았습니다. 한 서버의 프로 시저 캐시에있는 정보가 다른 서버의 프로 시저 캐시에있는 정보와 동일하지 않다는 것입니다.

+0

내가 언급 한 사항에 동의하지만, 기본 및 보조 서버를 고려하고 DMV를 각각 캡처하고 각각의 서버에서 델타를 가져 오는 것이지만 여러 가지 이유로 인해 장애가 발생할 때 DMV 통계를 다시 설정할 수 있는지 궁금합니다. –

+0

DMV의 이전 값이 현재 캡처 값보다 클 때 DMV가 해당 기간 동안 리셋 된 것으로 간주됩니다. –

+1

아침에 세 번 쿼리가 호출되고 오후에 네 번 쿼리가 발생하고 둘 사이에서 페일 오버가 발생하면 장애 조치 이후에 더 높은 값이 표시됩니다. sys.dm_exec_procedure_stats의 값은 캐시에 종속되므로 캐시를 변경하면 그 값이 변경됩니다. 모든 값이 저장되는 Query Store와는 다릅니다. –

관련 문제