다음을 통해 공유


sp_syscollector_update_collection_item(Transact-SQL)

사용자 정의 컬렉션 항목의 속성을 수정하거나 사용자 정의 컬렉션 항목의 이름을 바꾸는 데 사용합니다.

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

구문

sp_syscollector_update_collection_item 
      [ [ @collection_item_id = ] collection_item_id ]
        , [ [ @name = ] 'name' ]
        , [ [ @new_name = ] 'new_name' ]
        , [ [ @frequency = ] frequency ]
        , [ [ @parameters = ] 'parameters' ]

인수

  • [ @collection_item_id = ] collection_item_id
    컬렉션 항목을 식별하는 고유한 식별자입니다. collection_item_id는 int이며 기본값은 NULL입니다. name이 NULL이면 collection_item_id에 값이 있어야 합니다.

  • [ @name = ] 'name'
    컬렉션 항목의 이름입니다. name은 sysname이며 기본값은 NULL입니다. collection_item_id가 NULL이면 name에 값이 있어야 합니다.

  • [ @new_name = ] 'new_name'
    컬렉션 항목의 새 이름입니다. new_name은 sysname이며 사용될 경우 빈 문자열일 수 없습니다.

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

  • [ @frequency = ] frequency
    컬렉션 항목에 의해 데이터가 수집되는 빈도(초)입니다. frequency는 int이며, 기본값은 지정 가능한 최소값인 5입니다.

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

반환 코드 값

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

주의

컬렉션 집합이 캐시되지 않은 모드로 설정된 경우 이 모드에서는 데이터 컬렉션과 업로드가 모두 컬렉션 집합에 지정된 일정에 따라 발생하므로 빈도 변경이 무시됩니다. 컬렉션 집합의 상태를 보려면 다음 쿼리를 실행합니다. <collection_item_id>를 업데이트할 컬렉션 항목의 ID로 바꿉니다.

USE msdb;
GO
SELECT cs.collection_set_id, collection_set_uid, cs.name 
    ,'is running' = CASE WHEN is_running =  0 THEN 'No' ELSE 'Yes' END
    ,'cache mode' = CASE WHEN collection_mode = 0 THEN 'Cached mode' ELSE 'Non-cached mode' END
FROM syscollector_collection_sets AS cs
JOIN syscollector_collection_items AS ci 
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = <collection_item_id>;

사용 권한

이 프로시저를 실행하려면 dc_admin 또는 dc_operator(EXECUTE 권한 있음) 고정 데이터베이스 역할의 멤버 자격이 필요합니다. dc_operator는 이 저장 프로시저를 실행할 수 있지만 이 역할의 멤버가 변경할 수 있는 속성은 제한적입니다. 다음 속성은 dc_admin만 변경할 수 있습니다.

  • @new_name

  • @parameters

다음 예는 sp_syscollector_create_collection_item(Transact-SQL)에 정의된 예에서 생성된 컬렉션 항목에 기반을 둡니다.

1. 컬렉션 빈도 변경

다음 예에서는 지정한 컬렉션 항목에 대한 컬렉션 빈도를 변경합니다.

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO

2. 컬렉션 항목 이름 바꾸기

다음 예에서는 컬렉션 항목의 이름을 바꿉니다.

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@name = N'My custom TSQL query collector item',
@new_name = N'My modified TSQL item';
GO

3. 컬렉션 항목의 매개 변수 변경

다음 예에서는 컬렉션 항목과 관련된 매개 변수를 변경합니다. <Value> 특성 내에 정의된 문이 변경되며 UseSystemDatabases 특성이 False로 설정됩니다. 이 항목의 현재 매개 변수를 보려면 syscollector_collection_items 시스템 뷰의 parameters 열을 쿼리합니다. @collection_item_id의 값을 수정해야 할 수 있습니다.

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@collection_item_id = 9, 
@parameters = '
    <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
        <Query>
            <Value>SELECT * FROM sys.dm_db_index_usage_stats</Value>
            <OutputTable>MyOutputTable</OutputTable>
        </Query>
        <Databases>
            <Database> UseSystemDatabases = "false" 
                       UseUserDatabases = "true"</Database>
        </Databases>
    </ns:TSQLQueryCollector>';
GO