sys.sp_persistent_version_cleanup(Transact-SQL)
적용 대상: SQL Server 2019(15.x) Azure SQL 데이터베이스Azure SQL Managed Instance
ADR(가속 데이터베이스 복구)의 핵심 요소인 PVS(영구 버전 저장소) 정리 프로세스를 수동으로 시작합니다. 이 클리너는 중단된 트랜잭션에서 PVS의 커밋되지 않은 데이터를 롤백합니다.
일반적으로 PVS 정리 프로세스를 수동으로 시작할 sys.sp_persistent_version_cleanup
필요는 없습니다. 그러나 일부 시나리오에서는 사용 중인 OLTP 작업 후 알려진 휴식/복구 기간에 PVS 정리 프로세스를 수동으로 시작할 수 있습니다.
ADR에 대한 자세한 내용은 가속 데이터베이스 복구참조하세요.
구문
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 = ] clean_option
선택 사항. 가능한 옵션은 오프행 PVS 페이지를 회수할지 여부를 결정합니다.
@clean_option 기본값인 0
입니다. 이 참조는 일반적으로 필요하지 않으며 기본값 0
을 사용하는 것이 좋습니다.
값 | 설명 |
---|---|
0 |
기본값, 옵션이 지정되지 않음 |
1 |
개별 PVS 페이지 콘텐츠를 확인하지 않고 행이 없는 버전 저장소 |
2 |
각 PVS 페이지를 방문한 행이 없는 버전 저장소 |
3 |
행 내 버전 저장소만 |
4 |
내부 사용만 |
반환 코드 값
0
(성공) 또는 1
(실패).
결과 집합
없음
사용 권한
데이터베이스에 대한 ALTER
권한이 필요합니다.
설명
sys.sp_persistent_version_cleanup
저장 프로시저는 동기적입니다. 즉, 현재 PVS에서 모든 버전 정보가 정리될 때까지 완료되지 않습니다.
SQL Server 2019(15.x)에서 PVS 정리 프로세스는 한 번에 하나의 데이터베이스에 대해서만 실행됩니다. Azure SQL Database 및 Azure SQL Managed Instance에서 SQL Server 2022(16.x)부터 동일한 인스턴스의 여러 데이터베이스에 대해 PVS 정리 프로세스를 병렬로 실행할 수 있습니다.
PVS 정리 프로세스가 원하는 데이터베이스에 대해 이미 실행 중인 경우 다른 PVS 정리 프로세스를 시작하기 전에 이 저장 프로시저가 차단됩니다. ADR을 사용하도록 설정된 동일한 데이터베이스 엔진 인스턴스의 모든 데이터베이스에서 장기 실행된 활성 트랜잭션은 PVS 정리를 차단할 수도 있습니다.
다음 샘플 쿼리를 사용하여 해당 프로세스를 찾아 버전 클리너 작업을 모니터링할 수 있습니다.
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
ADR을 사용하지 않도록 설정한 경우 실행 sys.sp_persistent_version_cleanup
하여 PVS에서 이전 버전을 정리합니다.
예제
워크로드 간 또는 유지 관리 기간 동안 PVS 정리 프로세스를 수동으로 활성화하려면 다음 샘플 스크립트를 사용합니다.
EXEC sys.sp_persistent_version_cleanup [database_name];
예시:
EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];
또는 현재 데이터베이스 컨텍스트를 가정하려면 다음을 수행합니다.
USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;