Membuat kumpulan koleksi kustom - Jenis pengumpul Kueri T-SQL Generik

Berlaku untuk:SQL Server

Anda dapat membuat kumpulan koleksi kustom dengan item koleksi yang menggunakan jenis pengumpul Kueri T-SQL Generik dengan menggunakan prosedur tersimpan yang disediakan dengan pengumpul data. Menyelesaikan tugas ini melibatkan penggunaan Editor Kueri di SQL Server Management Studio untuk melakukan prosedur berikut:

  • Mengonfigurasi jadwal unggahan
  • Menentukan dan membuat kumpulan koleksi
  • Menentukan dan membuat item koleksi
  • Verifikasi bahwa kumpulan koleksi dan item koleksi ada

Sebelum membuat kumpulan koleksi kustom, Anda harus mengonfigurasi parameter pengumpulan data. Untuk informasi selengkapnya, lihat Mengonfigurasi Parameter Pengumpulan Data (Transact-SQL).

Menentukan dan membuat kumpulan koleksi

  1. Tentukan kumpulan koleksi baru menggunakan prosedur tersimpan sp_syscollector_create_collection_set .

    USE msdb;
    GO
    
    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;
    

    Mode koleksi dapat diatur ke ( 0 di-cache) atau ke 1 (tidak di-cache).

    Tingkat pengelogan dapat diatur ke 0, 1, atau 2.

    Jadwal yang telah dikonfigurasi sebelumnya berikut disediakan dengan pengumpul data:

    • CollectorSchedule_Every_5min
    • CollectorSchedule_Every_10min
    • CollectorSchedule_Every_15min
    • CollectorSchedule_Every_30min
    • CollectorSchedule_Every_60min
    • CollectorSchedule_Every_6h

    Jika Anda tidak ingin menggunakan salah satu jadwal yang disediakan, Anda dapat membuat jadwal baru dan menggunakannya untuk kumpulan koleksi. Untuk informasi selengkapnya, lihat Membuat dan Melampirkan Jadwal ke Pekerjaan.

Menentukan dan membuat item koleksi

  1. Karena item koleksi baru didasarkan pada jenis pengumpul generik yang sudah diinstal, Anda dapat menjalankan kode berikut untuk mengatur GUID agar sesuai dengan jenis pengumpul Kueri T-SQL Generik.

    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. Gunakan prosedur tersimpan sp_syscollector_create_collection_item untuk membuat item koleksi. Deklarasikan skema untuk item koleksi sehingga memetakan ke skema yang diperlukan untuk jenis pengumpul Kueri T-SQL Generik.

    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;
    

Verifikasi bahwa kumpulan koleksi dan item koleksi baru ada

  1. Sebelum memulai kumpulan koleksi baru, jalankan kueri berikut untuk memverifikasi bahwa kumpulan koleksi baru dan item koleksinya dibuat.

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

    Anda juga dapat melakukan pemeriksaan visual di SQL Server Management Studio. Di Object Explorer, perluas simpul Manajemen , lalu perluas Pengumpulan Data. Kumpulan koleksi baru ditampilkan. Ikon lingkaran merah untuk kumpulan koleksi menunjukkan bahwa kumpulan dihentikan.

Contoh

Sampel kode berikut menggabungkan contoh yang didokumenkan dalam langkah-langkah sebelumnya. Frekuensi pengumpulan yang diatur untuk item koleksi (5 detik) diabaikan karena mode kumpulan kumpulan diatur ke 0, yang merupakan mode cache. Untuk informasi selengkapnya, lihat Pengumpulan data.

USE msdb;
GO

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