sp_syscollector_update_collection_item(Transact-SQL)

적용 대상:SQL Server

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

Transact-SQL 구문 표기 규칙

구문

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

인수

[ @collection_item_id = ] collection_item_id

컬렉션 항목을 식별하는 고유 식별자입니다. @collection_item_id 기본값NULLint입니다. @name 경우 @collection_item_id 값이 NULL있어야 합니다.

[ @name = ] N'name'

컬렉션 항목의 이름입니다. @name sysname이며 기본값은 .입니다NULL. @collection_item_id 경우 @name 값이 NULL있어야 합니다.

[ @new_name = ] N'new_name'

컬렉션 항목의 새 이름입니다. @new_name 기본값NULL인 sysname이며 사용되는 경우 빈 문자열이 될 수 없습니다.

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

[ @frequency = ] frequency

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

[ @parameters = ] N'parameters'

컬렉션 항목에 대한 입력 매개 변수입니다. @parameters xml이며 기본값은 빈 문자열입니다. @parameters 스키마는 수집기 형식의 매개 변수 스키마와 일치해야 합니다.

반환 코드 값

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

설명

컬렉션 집합이 캐시되지 않은 모드로 설정된 경우 이 모드에서는 데이터 컬렉션과 업로드가 모두 컬렉션 집합에 지정된 일정에 따라 발생하므로 빈도 변경이 무시됩니다. 컬렉션 집합의 상태 보려면 다음 쿼리를 실행합니다. 업데이트할 컬렉션 항목의 ID로 바꿉니다 <collection_item_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
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

사용 권한

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

  • @new_name
  • @parameters

예제

다음 예제는 sp_syscollector_create_collection_item(Transact-SQL)에 정의된 예제에서 만든 컬렉션 항목을 기반으로 합니다.

A. 컬렉션 빈도 변경

다음은 지정한 컬렉션 항목의 컬렉션 빈도를 변경하는 예제입니다.

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @frequency = 3000;
GO

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

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

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

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

다음 예제에서는 컬렉션 항목과 연결된 매개 변수를 변경합니다. 특성 내에 <Value> 정의된 문이 변경되고 특성이 UseSystemDatabases false로 설정됩니다. 이 항목에 대한 현재 매개 변수를 보려면 시스템 뷰에서 syscollector_collection_items 매개 변수 열을 쿼리합니다. @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