Udostępnij za pośrednictwem


How to: Create a Custom Collection Set That Uses the Generic T-SQL Query Collector Type

Można utworzyć niestandardowy zestaw kolekcja z kolekcja elementów, które należy użyć typ modułu zbierającego dane rodzajowy T-SQL kwerendy za pomocą procedur przechowywanych, które są dostarczane z modułów zbierających dane.Wykonania tego zadania polega na użyciu Edytor kwerend w SQL Server Management Studio Aby przeprowadzić następujące procedury:

  • Skonfiguruj harmonogramy przekazywania.

  • Definiowanie i tworzenie zestaw kolekcja.

  • Definiowanie i tworzenie element kolekcja.

  • Sprawdź, czy zestaw kolekcja i istnieje kolekcja elementów.

Uwaga

Przed utworzeniem niestandardowego zestaw kolekcja, należy skonfigurować parametry zbierania danych.Aby uzyskać więcej informacji zobaczHow to: Configure Data Collection Parameters.

Definiowanie i tworzenie zestaw kolekcja

  • Zdefiniuj nowy zestaw kolekcja przy użyciu sp_syscollector_create_collection_set procedura przechowywanaj.

    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
    

    Tryb kolekcja zestaw na 0, albo (buforowane) lub 1 (innych niż buforowane).

    Poziom rejestrowania może być zestaw 0, 1 lub 2.Aby uzyskać więcej informacji na temat poziomów rejestrowania Zobacz Data Collector Logging.

    Następujące wstępnie skonfigurowane harmonogramy są dostarczane z modułów zbierających dane:

    • CollectorSchedule_Every_5min

    • CollectorSchedule_Every_10min

    • CollectorSchedule_Every_15min

    • CollectorSchedule_Every_30min

    • CollectorSchedule_Every_60min

    • CollectorSchedule_Every_6h

    Jeśli nie chcesz użyć jednej z harmonogramu, które zostały udostępnione, można utworzyć nowy arkusz i użyć go do zestaw kolekcja.Aby uzyskać więcej informacji zobaczCreating and Attaching Schedules to Jobs.

Definiowanie i tworzenie element kolekcja

  1. Ponieważ nowy element kolekcja opiera się na typ rodzajowy modułu zbierającego, który jest już zainstalowany, można uruchomić poniższy kod, aby ustawić identyfikator GUID odpowiada typ modułu zbierającego dane rodzajowy kwerendy T-SQL.

    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. Użycie sp_syscollector_create_collection_item przechowywanej procedury, aby utworzyć element kolekcja.Schemat zadeklarować element kolekcja tak mapuje schematu, wymagane dla typ modułu zbierającego dane rodzajowy T-SQL kwerendy.

    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
    

Sprawdź, czy nowe zestaw kolekcja i istnieje element kolekcja

  • Przed rozpoczęciem nowej zestaw kolekcja, uruchom następującą kwerendę, aby sprawdzić, czy nowe zestaw kolekcja i jego element kolekcja zostały utworzone.

    USE msdb
    SELECT * FROM syscollector_collection_sets
    SELECT * FROM syscollector_collection_items
    GO
    

    Można również wykonać wizualnej wyboru SQL Server Management Studio. W Eksploratorze obiektów, należy rozwinąć Zarządzanie , węzeł, a następnie rozwiń Zbieranie danych.Nowe zestaw kolekcja będą wyświetlane.Ikona czerwonym kółkiem zestaw kolekcja wskazuje, że zestaw kolekcja zostanie zatrzymana.

Example

Poniższy przykładowy kod łączy przykłady, które są opisane w poprzednich krokach.Należy zauważyć, że częstotliwość gromadzenia ustawionego dla element kolekcja (5 sekund) jest ignorowana, ponieważ tryb kolekcja zestaw kolekcja jest ustawiony na 0, który jest w trybie buforowanym.Aby uzyskać więcej informacji zobaczData Collection Terminology.

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