Share via


core.sp_purge_data(Transact-SQL)

보존 정책을 기준으로 관리 데이터 웨어하우스에서 데이터를 제거합니다. 이 프로시저는 지정된 인스턴스와 연결된 관리 데이터 웨어하우스에 대해 mdw_purge_data SQL Server 에이전트 작업에서 매일 실행됩니다. 다음 저장 프로시저를 사용하여 관리 데이터 웨어하우스에서 데이터를 요청 시 제거할 수 있습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

core.sp_purge_data
    [ [ @retention_days = ] retention_days ]
    [ , [ @instance_name = ] 'instance_name' ]
    [ , [ @collection_set_uid = ] 'collection_set_uid' ]
    [ , [ @duration = ] duration ]

인수

  • [@retention_days =] retention_days
    데이터를 관리 데이터 웨어하우스 테이블에 보관하는 일 수입니다. retention_days보다 오래된 타임스탬프가 있는 데이터는 제거됩니다. retention_days는 smallint이며 기본값은 NULL입니다. 지정된 경우 값은 양수여야 합니다. NULL인 경우 core.snapshots 뷰의 valid_through 열에 있는 값에 따라 제거에 적합한 행이 결정됩니다.

  • [@instance_name = ] 'instance_name'
    컬렉션 집합의 인스턴스 이름입니다. instance_name은 sysname이며 기본값은 NULL입니다.

    instance_name은 computername\instancename 형식의 컴퓨터 이름과 인스턴스 이름으로 구성된 정규화된 인스턴스 이름이어야 합니다. NULL인 경우 로컬 서버의 기본 인스턴스가 사용됩니다.

  • [@collection_set_uid = ] 'collection_set_uid'
    컬렉션 집합에 대한 GUID입니다. collection_set_uid는 uniqueidentifier이며 기본값은 NULL입니다. NULL인 경우 모든 컬렉션 집합에서 한정하는 행이 제거됩니다. 이 값을 가져오려면 syscollector_collection_sets 카탈로그 뷰를 쿼리하십시오.

  • [@duration = ] duration
    제거 작업을 실행해야 하는 최대 시간(분)입니다. duration은 smallint이며 기본값은 NULL입니다. 지정된 경우 값은 0 또는 양의 정수여야 합니다. NULL인 경우 한정된 모든 행이 제거될 때까지 작업이 실행되거나 작업이 수동으로 중지됩니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

이 프로시저는 보존 기간을 기준으로 제거에 적합한 core.snapshots 뷰에서 행을 선택합니다. 그러면 제거에 적합한 모든 행이 core.snapshots_internal 테이블에서 삭제됩니다. 이전 행을 삭제하면 모든 관리 데이터 웨어하우스 테이블에서 연계 삭제 동작이 트리거됩니다. 이 작업은 수집된 데이터를 저장하는 모든 테이블에 대해 정의된 ON DELETE CASCADE 절을 사용하여 수행됩니다.

각 스냅숏과 이와 연결된 데이터는 명시적 트랜잭션 내에서 삭제된 다음 커밋됩니다. 따라서 제거 작업을 수동으로 중지하거나 @duration에 지정된 값이 초과된 경우 커밋되지 않은 데이터만 유지됩니다. 이 데이터는 다음에 작업이 실행될 때 제거될 수 있습니다.

이 프로시저는 관리 데이터 웨어하우스 데이터베이스의 컨텍스트에서 실행해야 합니다.

사용 권한

mdw_admin(EXECUTE 권한 있음) 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

1.매개 변수 없이 sp_purge_data 실행

다음 예에서는 매개 변수를 지정하지 않고 core.sp_purge_data를 실행합니다. 따라서 모든 매개 변수에 대해 기본값 NULL이 연결된 동작과 함께 사용됩니다.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO

2.보존 및 기간 값 지정

다음 예에서는 관리 데이터 웨어하우스에서 7일보다 오래된 데이터를 제거합니다. 또한 작업이 5분 이상 실행되지 않도록 @duration 매개 변수도 지정합니다.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO

3.인스턴스 이름 및 컬렉션 집합 지정

다음 예에서는 관리 데이터 웨어하우스에서 지정된 SQL Server 인스턴스의 지정된 컬렉션 집합에 대한 데이터를 제거합니다. @retention\_days가 지정되지 않았기 때문에 core.snapshots 뷰의 valid_through 열에 있는 값에 따라 제거에 적합한 컬렉션 집합의 행이 결정됩니다.

USE <management_data_warehouse>;
GO
-- Get the collection set unique identifier for the Disk Usage system collection set.
DECLARE @disk_usage_collection_set_uid uniqueidentifier = (SELECT collection_set_uid 
    FROM msdb.dbo.syscollector_collection_sets WHERE name = N'Disk Usage'); 

EXECUTE core.sp_purge_data @instance_name = @@SERVERNAME, @collection_set_uid = @disk_usage_collection_set_uid;
GO

참고 항목

참조

시스템 저장 프로시저(Transact-SQL)

데이터 수집기 저장 프로시저(Transact-SQL)