Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions)

증상

SQL Server 2016 및 2017에 ALWAYS ON AG(가용성 그룹)가 있다고 가정합니다. 보조 복제본(replica) 읽기 쿼리를 처리하는 경우 잦은 DIRTY_PAGE_TABLE_LOCK 대기로 인해 기본 복제본(replica) 성능이 훨씬 느려질 수 있습니다.

원인

이 문제는 읽기 쿼리와 다시 실행 스레드 간의 경합과 테이블이 잠겨 있기 때문에 발생합니다.

해결 방법

이 수정 사항은 SQL Server 대한 다음 업데이트에 포함되어 있습니다.

2017년 SQL Server 대한 누적 업데이트 8 

SQL Server 2016 서비스 팩 2의 누적 업데이트 1

SQL Server 2016 서비스 팩 1의 누적 업데이트 9

SQL Server 빌드 정보

SQL Server 대한 각 새 빌드에는 이전 빌드에 있던 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. SQL Server 버전에 대한 최신 빌드를 설치하는 것이 좋습니다.

SQL Server 2017의 최신 누적 업데이트

SQL Server 2016의 최신 빌드

해결 방법 

이 문제를 해결하려면 추적 플래그 3459를 사용하도록 설정하여 병렬 다시 실행 스레드 대신 단일 다시 실행 스레드를 사용할 수 있습니다.

추가 정보

읽기 전용 쿼리가 읽기 가능한 보조 복제본(replica) 실행 중인 경우 쿼리 스레드는 보류 중인 로그 다시 실행 작업을 적용하려고 시도하고 DIRTY_PAGE_TABLE_LOCK 대기를 사용하여 다시 실행 작업자 스레드와 공동 작업을 수행해야 합니다. 이 스레드는 동시 다시 실행 워크로드가 있는 경우 자주 생성되고 다시 실행 및 쿼리 성능이 저하될 수 있습니다. DIRTY_PAGE_TABLE_LOCK 대기와 관련된 성능 문제는 이 문서에 언급된 SQL Server 2016 SP 및 SQL Server 2017의 누적 업데이트 릴리스에서 해결됩니다.

자세한 내용은 가용성 그룹 보조 복제본(replica) 다시 실행 모델 및 성능에 대한 다음 블로그를 참조하세요.

상태

Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.

참고 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어 에 대해 알아봅니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.