적용 대상:SQL Server
SQL Server 2019(15.x)부터 이 구성 설정은 가속 데이터베이스 복구사용됩니다.
ADR(가속 데이터베이스 복구)은 트랜잭션 관리 및 데이터베이스 복구를 위해 행 버전을 사용합니다. 이들 버전은 다양한 DML(데이터 조작 언어) 작업의 일부로 생성됩니다. 버전은 PVS(영구 버전 저장소)라는 내부 테이블에 행 내 또는 행 외부에 저장됩니다.
설명
페이지가 포그라운드 사용자 DML 작업의 일부로 PVS(영구 버전 저장소)에 할당되는 경우 성능이 저하될 수 있습니다. 백그라운드 스레드는 페이지를 미리 할당하고 PVS에 삽입할 때 쉽게 사용할 수 있도록 유지합니다. 백그라운드 스레드가 포그라운드 PVS 할당 비율이 0에 가까운 충분한 페이지를 미리 할당할 때 성능이 최적입니다.
백그라운드 스레드가 미리 할당하는 페이지 수는 다양한 워크로드 추론을 기반으로 합니다. 일반적으로 백그라운드 스레드는 512페이지의 청크를 할당합니다. ADR 미리 할당 인수는 청크의 배수입니다. 기본적으로 4
가 요소이며, 이는 필요 시 2048 페이지가 한 번에 미리 할당된다는 것을 의미합니다.
백그라운드 스레드는 워크로드 패턴을 고려하지만, 필요한 경우 성능을 개선하기 위해 이 인수를 증가시킬 수 있습니다. 확장 이벤트는 tx_version_optimized_insert_stats
PVS에서 공간 할당이 발생할 때 트리거되며 공간 할당 통계를 주기적으로 제공합니다. 필드의 foreground_allocation_percent
값이 0보다 훨씬 높은 경우, ADR Preallocation Factor
설정을 증가시키는 것을 고려하십시오.
경고
PVS 사전 할당 인자가 너무 많이 증가하면 시스템의 다른 할당과 경합할 수 있으며 실제로 전체 성능을 줄일 수 있습니다. 이 설정을 수정하기 전에 추적 및 비교를 위해 시스템 성능의 기준을 가져옵니다.
알려진 문제
SQL Server 2019(15.x) CU 12 및 이전 버전의 경우, 이 값을 0
으로 설정할 수 있습니다. 이 문서의 예를 사용하여 설계된 기본값인 값 4
로 초기화하는 것이 좋습니다.
예시
다음 예에서는 미리 할당 요소를 4
로 설정합니다.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR Preallocation Factor', 4;
RECONFIGURE;
GO