sys.sp_flush_CT_internal_table_on_demand(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
이 저장 프로시저를 사용하면 변경 내용 추적이 사용하도록 설정된 데이터베이스의 테이블에 대한 사이드 테이블(change_tracking_objectid
)을 수동으로 정리할 수 있습니다. TableToClean 매개 변수가 전달되지 않으면 이 프로세스는 변경 내용 추적이 사용되는 데이터베이스의 모든 테이블에 대한 모든 측면 테이블을 정리합니다.
구문
sys.sp_flush_CT_internal_table_on_demand
[ @TableToClean = ] 'TableToClean'
[ , [ @DeletedRowCount = ] DeletedRowCount OUTPUT ]
[ ; ]
인수
[ @TableToClean = ] 'TableToClean'
수동으로 정리할 변경 내용 추적 지원 테이블입니다. 변경 내용 추적을 통해 자동 정리를 위해 백로그가 남아 있습니다. 모든 사이드 테이블을 정리하려면 null일 수 있습니다.
[ @DeletedRowCount = ] 'DeletedRowCount의 출력
@DeletedRowCount bigint 형식의 OUTPUT 매개 변수입니다. 이 매개 변수는 프로세스 중에 정리된 총 행 수를 반환합니다.
반환 코드 값
0
(성공) 또는 1
(실패).
예제
DECLARE @DeletedRowCount BIGINT;
EXEC sys.sp_flush_CT_internal_table_on_demand '[Sales].[Orders]',
@DeletedRowCount = @DeletedRowCount OUTPUT;
PRINT CONCAT('Number of rows deleted: ', @DeletedRowCount);
GO
결과 집합은 다음과 같습니다.
Started executing query at Line 1
Cleanup Watermark = 17
Internal Change Tracking table name : change_tracking_1541580530
Total rows deleted: 0.
Number of rows deleted: 0
Total execution time: 00:00:02.949
설명
이 절차는 변경 내용 추적을 사용하도록 설정된 데이터베이스에서 실행해야 합니다.
저장 프로시저를 실행하면 다음 시나리오 중 하나가 발생합니다.
테이블이 없거나 변경 내용 추적을 사용하도록 설정하지 않으면 적절한 오류 메시지가 throw됩니다.
이 저장 프로시저는 동적 관리 뷰를 사용하여 잘못된 정리 버전을 기반으로 하는 변경 내용 추적 쪽 테이블의 내용을 정리하는 또 다른 내부 저장 프로시저를
sys.change_tracking_tables
호출합니다. 실행 중이면 삭제된 총 행의 정보(5000개 행마다)가 표시됩니다.
이 저장 프로시저는 다음 제품에서 사용할 수 있습니다.
- SQL Server 2016(13.x) 서비스 팩 1 이상 버전
- Azure SQL Database 및 Azure SQL Managed Instance
사용 권한
sysadmin 서버 역할 또는 db_owner 데이터베이스 역할의 멤버만 이 절차를 실행할 수 있습니다.