sys.sp_persistent_version_클린up(Transact-SQL)
적용 대상: SQL Server 2019 (15.x) Azure SQL DatabaseAzure SQL Managed Instance
ADR(가속 데이터베이스 복구)의 핵심 요소인 PVS(영구 버전 저장소) 클린up 프로세스를 수동으로 시작합니다. 이 클린er는 중단된 트랜잭션에서 PVS의 커밋되지 않은 데이터를 롤백합니다.
일반적으로 PVS 클린up 프로세스를 수동으로 시작할 sys.sp_persistent_version_cleanup
필요는 없습니다. 그러나 일부 시나리오에서는 사용 중인 OLTP 작업 후 알려진 휴식/복구 기간에 PVS 클린up 프로세스를 수동으로 시작할 수 있습니다.
Azure SQL의 ADR에 대한 자세한 내용은 Azure SQL 가속 데이터베이스 복구를 참조하세요.
구문
sp_persistent_version_cleanup
[ [ @dbname = ] N'dbname' ]
[ , [ @scanallpages = ] scanallpages ]
[ , [ @clean_option = ] clean_option ]
[ ; ]
인수
[ @dbname = ] N'dbname'
선택 사항. 클린 데이터베이스의 이름입니다. 제공되지 않으면 현재 데이터베이스 컨텍스트를 사용합니다. @dbname sysname이며 기본값은 .입니다NULL
.
[ @scanallpages = ] scanallpages
선택 사항. @scanallpages 비트이며 기본값은 .입니다0
. 이 옵션을 설정하면 1
버전이 지정되지 않더라도 모든 데이터베이스 페이지를 강제로 클린.
[ @clean_option = ] 클린_option
선택 사항. 가능한 옵션은 오프행 PVS 페이지를 회수할지 여부를 결정합니다. @클린_option 기본값0
인 int입니다. 이 참조는 일반적으로 필요하지 않으며 기본값 0
을 사용하는 것이 좋습니다.
값 | 설명 |
---|---|
0 | 기본값, 옵션이 지정되지 않음 |
1 | 개별 PVS 페이지 콘텐츠를 검사 않고 행이 없는 버전 저장소 |
2 | 각 PVS 페이지를 방문한 행이 없는 버전 저장소 |
3 | 행 내 버전 저장소만 |
4 | 내부 사용만 |
반환 코드 값
0
(성공) 또는 1
(실패).
결과 집합
없음
사용 권한
실행하려면 ALTER DATABASE 권한이 필요합니다.
설명
sys.sp_persistent_version_cleanup
저장 프로시저는 동기적이므로 모든 버전 정보가 현재 PVS에서 클린 때까지 완료되지 않습니다.
SQL Server 2019(15.x)에서 PVS 클린up 프로세스는 한 번에 하나의 데이터베이스에 대해서만 실행됩니다. Azure SQL Database 및 Azure SQL Managed Instance에서 SQL Server 2022(16.x)부터 PVS 클린up 프로세스는 동일한 인스턴스의 여러 데이터베이스에 대해 병렬로 실행할 수 있습니다.
PVS 클린up 프로세스가 이미 원하는 데이터베이스에 대해 실행 중인 경우 이 저장 프로시저가 차단되고 완료될 때까지 기다린 후 다른 PVS 클린up 프로세스를 시작합니다. ADR이 사용하도록 설정된 모든 데이터베이스의 활성 장기 실행 트랜잭션은 PVS의 클린 작동을 차단할 수도 있습니다. 다음 샘플 쿼리를 사용하여 해당 프로세스를 검색하여 버전 클린er 작업을 모니터링할 수 있습니다.
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
제한 사항
ADR을 사용하도록 설정하거나 PVS(지속형 버전 저장소)에 여전히 버전이 있는 데이터베이스에 대해 데이터베이스 미러링을 설정할 수 없습니다. ADR을 사용하지 않도록 설정한 경우 PVS에서 이전 버전을 클린 실행 sys.sp_persistent_version_cleanup
합니다.
예제
워크로드 간 또는 기본 기간 동안 PVS 클린up 프로세스를 수동으로 활성화하려면 다음 샘플 스크립트를 사용합니다.
EXEC sys.sp_persistent_version_cleanup [database_name];
예시:
EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];
또는 현재 데이터베이스 컨텍스트를 가정하려면 다음을 수행합니다.
USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;
관련 콘텐츠
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기