다음을 통해 공유


sp_syscollector_create_collection_item(Transact-SQL)

사용자 정의 컬렉션 집합에 컬렉션 항목을 만듭니다. 컬렉션 항목은 수집할 데이터와 데이터를 수집할 빈도를 정의합니다.

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

구문

sp_syscollector_create_collection_item 
      [ @collection_set_id = ] collection_set_id 
        , [ @collector_type_uid = ] 'collector_type_uid'
        , [ @name = ] 'name' 
        , [ [ @frequency = ] frequency ]
        , [ @parameters = ] 'parameters'
        , [ @collection_item_id = ] collection_item_id OUTPUT

인수

  • [ @collection_set_id = ] collection_set_id
    컬렉션 집합의 고유한 로컬 식별자입니다. collection_set_id는 int입니다.

  • [ @collector_type_uid = ] 'collector_type_uid'
    이 항목에 사용할 수집기 유형을 식별하는 GUID입니다. collector_type_uid는 uniqueidentifier이며 기본값은 없습니다. 수집기 유형의 목록을 보려면 syscollector_collector_types 시스템 뷰를 쿼리합니다.

  • [ @name = ] 'name'
    컬렉션 항목의 이름입니다. name은 sysname이며 빈 문자열 또는 NULL일 수 없습니다.

    name은 고유해야 합니다. 현재 컬렉션 항목 이름의 목록을 보려면 syscollector_collection_items 시스템 뷰를 쿼리합니다.

  • [ @frequency = ] frequency
    이 컬렉션 항목에서 데이터를 수집하는 빈도(초)를 지정하는 데 사용됩니다. frequency는 int이며 기본값은 5입니다. 지정할 수 있는 최소값은 5초입니다.

    컬렉션 집합이 캐시되지 않은 모드로 설정된 경우 이 모드에서는 데이터 컬렉션과 업로드가 모두 컬렉션 집합에 지정된 일정에 따라 발생하므로 빈도가 무시됩니다. 컬렉션 집합의 컬렉션 모드를 보려면 syscollector_collection_sets 시스템 뷰를 쿼리합니다.

  • [ @parameters = ] 'parameters'
    수집기 유형의 입력 매개 변수입니다. parameters는 xml이며 기본값은 NULL입니다. parameters 스키마는 수집기 유형의 매개 변수 스키마와 일치해야 합니다.

  • [ @collection_item_id = ] collection_item_id
    컬렉션 집합 항목을 식별하는 고유한 식별자입니다. collection_item_id는 int이며 OUTPUT을 가집니다.

반환 코드 값

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

주의

sp_syscollector_create_collection_item은 msdb 시스템 데이터베이스의 컨텍스트에서 실행해야 합니다.

컬렉션 항목을 추가할 컬렉션 집합은 컬렉션 항목을 만들기 전에 중지해야 합니다. 시스템 컬렉션 집합에는 컬렉션 항목을 추가할 수 없습니다.

사용 권한

이 프로시저를 실행하려면 dc_admin(EXECUTE 권한 있음) 고정 데이터베이스 역할의 멤버여야 합니다.

다음 예에서는 Generic T-SQL Query Collector Type 컬렉션 형식 기반의 컬렉션 항목을 만들어서 Simple collection set test 2라는 컬렉션 집합에 추가합니다. 지정된 컬렉션 집합을 만들려면 sp_syscollector_create_collection_set(Transact-SQL)에 있는 예 2를 실행하십시오.

USE msdb;
GO
DECLARE @collection_item_id int;
DECLARE @collection_set_id int = (SELECT collection_set_id 
                                  FROM syscollector_collection_sets
                                  WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid uniqueidentifier = 
    (SELECT collector_type_uid
     FROM syscollector_collector_types
     WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params xml = 
    CONVERT(xml, N'<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
            <Query>
                <Value>SELECT * FROM sys.objects</Value>
                <OutputTable>MyOutputTable</OutputTable>
            </Query>
            <Databases> 
                <Database> UseSystemDatabases = "true" 
                           UseUserDatabases = "true"
                </Database>
            </Databases>
         </ns:TSQLQueryCollector>');

EXEC sp_syscollector_create_collection_item
    @collection_set_id = @collection_set_id,
    @collector_type_uid = @collector_type_uid,
    @name = 'My custom TSQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;