사용자 지정 컬렉션 집합 만들기 - 일반 T-SQL 쿼리 수집기 형식Create Custom Collection Set - Generic T-SQL Query Collector Type

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 데이터 수집기와 함께 제공된 저장 프로시저를 사용하여 일반 T-SQL 쿼리 수집기 유형을 사용하는 컬렉션 항목을 포함하는 사용자 지정 컬렉션 집합을 만들 수 있습니다. You can create a custom collection set with collection items that use the Generic T-SQL Query collector type by using the stored procedures that are provided with the data collector. 이 태스크를 수행하려면 SQL Server Management StudioSQL Server Management Studio 의 쿼리 편집기를 사용하여 다음 절차를 수행해야 합니다.Accomplishing this task involves using Query Editor in SQL Server Management StudioSQL Server Management Studio to carry out the following procedures:

  • 업로드 일정 구성Configure upload schedules.

  • 컬렉션 집합 정의 및 만들기Define and create the collection set.

  • 컬렉션 항목 정의 및 만들기Define and create a collection item.

  • 컬렉션 집합 및 컬렉션 항목의 존재 여부 확인Verify that the collection set and collection items exist.

참고

사용자 지정 컬렉션 집합을 만들기 전에 데이터 컬렉션 매개 변수를 구성해야 합니다.Before you create a custom collection set, you must configure data collection parameters. 자세한 내용은 데이터 컬렉션 매개 변수 구성(Transact-SQL)을 참조하세요.For more information, see Configure Data Collection Parameters (Transact-SQL).

컬렉션 집합 정의 및 만들기Define and create the collection set

  1. sp_syscollector_create_collection_set 저장 프로시저를 사용하여 새 컬렉션 집합을 정의합니다.Define a new collection set using the sp_syscollector_create_collection_set stored procedure.

    USE msdb;  
    DECLARE @collection_set_id int;  
    DECLARE @collection_set_uid uniqueidentifier;  
    EXEC sp_syscollector_create_collection_set   
        @name=N'DMV Test 1',   
        @collection_mode=0,   
        @description=N'This is a test collection set',   
        @logging_level=1,   
        @days_until_expiration=14,   
        @schedule_name=N'CollectorSchedule_Every_15min',   
        @collection_set_id=@collection_set_id OUTPUT,   
        @collection_set_uid=@collection_set_uid OUTPUT;  
    SELECT @collection_set_id, @collection_set_uid;  
    

    컬렉션 모드는 0(캐시됨) 또는 1(캐시 안 됨)로 설정할 수 있습니다.The collection mode can be set to either 0 (cached) or to 1 (non-cached).

    로깅 수준은 0, 1 또는 2로 설정할 수 있습니다.The logging level can be set to 0, 1 or 2.

    데이터 수집기와 함께 제공되는 미리 구성된 일정은 다음과 같습니다.The following preconfigured schedules are provided with the data collector:

    • CollectorSchedule_Every_5minCollectorSchedule_Every_5min

    • CollectorSchedule_Every_10minCollectorSchedule_Every_10min

    • CollectorSchedule_Every_15minCollectorSchedule_Every_15min

    • CollectorSchedule_Every_30minCollectorSchedule_Every_30min

    • CollectorSchedule_Every_60minCollectorSchedule_Every_60min

    • CollectorSchedule_Every_6hCollectorSchedule_Every_6h

      제공되는 일정 중 하나를 사용하지 않으려는 경우 새 일정을 만들어 컬렉션 집합에 대해 사용할 수 있습니다.If you do not want to use one of the schedules that are provided, you can create a new schedule and use it for the collection set. 자세한 내용은 일정을 만들고 작업에 연결을 참조하세요.For more information, see Create and Attach Schedules to Jobs.

컬렉션 항목 정의 및 만들기Define and create a collection item

  1. 새 컬렉션 항목은 이미 설치된 일반 수집기 유형을 기반으로 하므로 다음 코드를 실행하여 일반 T-SQL 쿼리 수집기 유형에 해당하는 GUID를 설정할 수 있습니다.Because the new collection item is based on a generic collector type that is already installed, you can run the following code to set the GUID to correspond to the Generic T-SQL Query collector type.

    DECLARE @collector_type_uid uniqueidentifier;  
    SELECT @collector_type_uid = collector_type_uid FROM [msdb].[dbo].[syscollector_collector_types]   
    WHERE name = N'Generic T-SQL Query Collector Type';  
    DECLARE @collection_item_id int;  
    
  2. sp_syscollector_create_collection_item 저장 프로시저를 사용하여 컬렉션 항목을 만듭니다.Use the sp_syscollector_create_collection_item stored procedure to create the collection item. 일반 T-SQL 쿼리 수집기 유형에 필요한 스키마에 매핑되도록 컬렉션 항목에 대한 스키마를 선언합니다.Declare the schema for the collection item so it maps to the schema that is required for the Generic T-SQL Query collector type.

    EXEC sp_syscollector_create_collection_item   
        @name=N'Query Stats - Test 1',   
        @parameters=N'  
            <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">  
            <Query>  
            <Value>SELECT * FROM sys.dm_exec_query_stats</Value>  
            <OutputTable>dm_exec_query_stats</OutputTable>  
            </Query>  
            </ns:TSQLQueryCollector>',   
        @collection_item_id=@collection_item_id OUTPUT,   
        @frequency=5,   
        @collection_set_id=@collection_set_id,   
        @collector_type_uid=@collector_type_uid;  
    SELECT @collection_item_id;  
    

새 컬렉션 집합 및 컬렉션 항목의 존재 여부 확인Verify that the new collection set and collection item exist

  1. 새 컬렉션 집합을 시작하기 전에 다음 쿼리를 실행하여 새 컬렉션 집합 및 해당 컬렉션 항목이 생성되었는지 여부를 확인합니다.Before starting the new collection set, run the following query to verify that the new collection set and its collection item have been created.

    USE msdb;  
    SELECT * FROM syscollector_collection_sets;  
    SELECT * FROM syscollector_collection_items;  
    GO  
    

    SQL Server Management StudioSQL Server Management Studio에서 직접 확인할 수도 있습니다.You can also do a visual check in SQL Server Management StudioSQL Server Management Studio. 개체 탐색기에서 관리 노드를 확장한 다음 데이터 컬렉션을 확장합니다.In Object Explorer, expand the Management node, and then expand Data Collection. 새 컬렉션 집합이 표시됩니다.The new collection set will be displayed. 컬렉션 집합의 아이콘에 있는 빨간색 원은 컬렉션 집합이 중지되었음을 나타냅니다.The red circle icon for the collection set indicates that the collection set is stopped.

예제Example

다음 코드 예는 앞의 단계에 나와 있는 예제를 조합합니다.The following code sample combines the examples that are documented in the previous steps. 컬렉션 집합 컬렉션 모드가 캐시됨 모드인 0으로 설정되어 있으므로 컬렉션 항목에 대해 설정된 컬렉션 빈도(5초)가 무시됩니다.Note that the collection frequency that is set for the collection item (5 seconds) is ignored because the collection set collection mode is set to 0, which is cached mode. 자세한 내용은 Data Collection을 참조하세요.For more information, see Data Collection.

USE msdb;  

DECLARE @collection_set_id int;  
DECLARE @collection_set_uid uniqueidentifier  

EXEC dbo.sp_syscollector_create_collection_set  
    @name = N'DMV Stats Test 1',  
    @collection_mode = 0,  
    @description = N'This is a test collection set',  
    @logging_level=1,  
    @days_until_expiration = 14,  
    @schedule_name=N'CollectorSchedule_Every_15min',  
    @collection_set_id = @collection_set_id OUTPUT,  
    @collection_set_uid = @collection_set_uid OUTPUT;  
SELECT @collection_set_id,@collection_set_uid;  

DECLARE @collector_type_uid uniqueidentifier;  
SELECT @collector_type_uid = collector_type_uid FROM syscollector_collector_types   
WHERE name = N'Generic T-SQL Query Collector Type';  

DECLARE @collection_item_id int;  
EXEC sp_syscollector_create_collection_item  
@name= N'Query Stats - Test 1',  
@parameters=N'  
<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">  
<Query>  
  <Value>select * from sys.dm_exec_query_stats</Value>  
  <OutputTable>dm_exec_query_stats</OutputTable>  
</Query>  
 </ns:TSQLQueryCollector>',  
    @collection_item_id = @collection_item_id OUTPUT,  
    @frequency = 5, -- This parameter is ignored in cached mode  
    @collection_set_id = @collection_set_id,  
    @collector_type_uid = @collector_type_uid;  
SELECT @collection_item_id;  

GO  

참고 항목See Also

데이터 수집기 저장 프로시저(Transact-SQL) Data Collector Stored Procedures (Transact-SQL)
일정 관리 Manage Schedules
컬렉션 집합 시작 또는 중지Start or Stop a Collection Set