Erstellen eines benutzerdefinierten Sammlungssatzes -Generischer T-SQL-Abfragesammlertyp
Gilt für: SQL Server
Sie können auch mithilfe der mit dem Datensammler bereitgestellten gespeicherten Prozeduren einen benutzerdefinierten Sammlungssatz mit Sammelelementen erstellen, die den generischen T-SQL-Abfragesammlertyp verwenden. Das Ausführen dieses Tasks umfasst die Verwendung des Abfrage-Editors in SQL Server Management Studio, um die folgenden Vorgänge durchzuführen:
- Konfigurieren von Uploadzeitplänen
- Definieren und Erstellen des Sammlungssatzes
- Definieren und Erstellen eines Auflistelements
- Überprüfen, ob der Sammlungssatz und die Sammelelemente vorhanden sind
Bevor Sie einen benutzerdefinierten Sammlungssatz erstellen, müssen Sie Datensammlungsparameter konfigurieren. Weitere Informationen finden Sie unter Konfigurieren von Parametern für die Datensammlung (Transact-SQL).
Definieren und Erstellen des Sammlungssatzes
Definieren Sie einen neuen Sammlungssatz mithilfe der gespeicherten
sp_syscollector_create_collection_set
Prozedur.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;
Der Sammlungsmodus kann auf
0
(zwischengespeichert) oder1
(nicht zwischengespeichert) festgelegt werden.Der Protokolliergrad kann auf
0
,1
oder2
festgelegt werden.Die folgenden vorkonfigurierten Zeitpläne werden mit dem Datensammler bereitgestellt:
- CollectorSchedule_Every_5min
- CollectorSchedule_Every_10min
- CollectorSchedule_Every_15min
- CollectorSchedule_Every_30min
- CollectorSchedule_Every_60min
- CollectorSchedule_Every_6h
Wenn Sie keinen der bereitgestellten Zeitpläne verwenden möchten, können Sie einen neuen Zeitplan erstellen und für den Sammlungssatz verwenden. Weitere Informationen finden Sie unter Anlegen und Zuweisen von Zeitplänen zu Aufträgen.
Definieren und Erstellen eines Auflistelements
Da das neue Sammelelement auf einem generischen Sammlertyp basiert, der bereits installiert ist, können Sie den folgenden Code ausführen, um die GUID so festzulegen, dass Sie dem generischen T-SQL-Abfragesammlertyp entspricht.
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;
Verwenden Sie die gespeicherte
sp_syscollector_create_collection_item
-Prozedur, um das Sammlungselement zu erstellen. Deklarieren Sie das Schema für das Auflistelement so, dass es dem Schema zugeordnet wird, das für den generischen T-SQL-Abfragesammlertyp erforderlich ist.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;
Überprüfen, ob der neue Sammlungssatz und das Sammelelement vorhanden sind
Bevor Sie den neuen Sammlungssatz starten, führen Sie die folgende Abfrage aus, um zu überprüfen, dass der neue Sammlungssatz und sein Auflistelement erstellt wurden.
USE msdb; GO SELECT * FROM syscollector_collection_sets; SELECT * FROM syscollector_collection_items; GO
Sie können auch eine visuelle Überprüfung in SQL Server Management Studio durchführen. Erweitern Sie im Objekt-Explorer den Knoten Verwaltung , und erweitern Sie dann Datensammlung. Der neue Sammlungssatz wird angezeigt. Das rote Kreissymbol für den Sammlungssatz gibt an, dass der Sammlungssatz beendet wurde.
Beispiele
Im folgenden Codebeispiel werden die in den vorherigen Schritten dokumentierten Beispiele miteinander kombiniert. Die für das Sammelelement festgelegte Auflistungshäufigkeit (5 Sekunden) ignoriert wird, da der Auflistungsmodus des Sammlungssatzes auf 0 festgelegt ist, was dem Modus mit Zwischenspeicherung entspricht. Weitere Informationen finden Sie unter Datensammlung.
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
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für