다음을 통해 공유


sys.sp_flush_CT_internal_table_on_demand(Transact-SQL)

적용 대상: SQL ServerAzure SQL Database Azure SQL Managed Instance

이 저장 프로시저를 사용하면 변경 내용 추적이 사용하도록 설정된 데이터베이스의 테이블에 대한 사이드 테이블(change_tracking_objectid)을 수동으로 정리할 수 있습니다. TableToClean 매개 변수가 전달되지 않으면 이 프로세스는 변경 내용 추적이 사용되는 데이터베이스의 모든 테이블에 대한 모든 측면 테이블을 정리합니다.

Transact-SQL 구문 표기 규칙

구문

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 데이터베이스 역할의 멤버만 이 절차를 실행할 수 있습니다.