sp_syscollector_create_collection_item (Transact-SQL)
適用於:SQL Server
在使用者定義的收集組中建立集合專案。 收集項目會定義要收集的數據,以及收集數據的頻率。
語法
sp_syscollector_create_collection_item
[ @collection_set_id = ] collection_set_id
, [ @collector_type_uid = ] 'collector_type_uid'
, [ @name = ] N'name'
[ , [ @frequency = ] frequency ]
[ , [ @parameters = ] N'parameters' ]
, [ @collection_item_id = ] collection_item_id OUTPUT
[ ; ]
引數
[ @collection_set_id = ] collection_set_id
收集組的唯一本機標識碼。 @collection_set_id為 int,沒有預設值。
[ @collector_type_uid = ] 'collector_type_uid'
GUID,識別要用於這個專案的收集器類型。 @collector_type_uid是 uniqueidentifier,沒有預設值。 如需收集器類型清單,請查詢 syscollector_collector_types
系統檢視。
[ @name = ] N'name'
集合項目的名稱。 @name是 sysname,不能是空字串或 NULL
。
@name必須是唯一的。 如需目前集合專案名稱的清單,請查詢 syscollector_collection_items
系統檢視。
[ @frequency = ] frequency
用來指定此收集項收集數據的頻率(以秒為單位)。 @frequency為 int,預設值為 5
。 可指定的最小值為5秒。
如果收集組設定為非快取模式,則會忽略頻率,因為此模式會導致數據收集和上傳在為收集組指定的排程發生。 若要檢視收集組的收集模式,請查詢 syscollector_collection_sets 系統檢視。
[ @parameters = ] N'parameters'
收集器類型的輸入參數。 @parameters為 xml,預設值為 NULL
。 @parameters架構必須符合收集器類型的參數架構。
[ @collection_item_id = ] collection_item_id OUTPUT
識別收集組專案的唯一標識碼。 @collection_item_id是 int 類型的 OUTPUT 參數。
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_syscollector_create_collection_item
必須在系統資料庫的內容 msdb
中執行。
要加入集合專案的收集組必須先停止,才能建立收集專案。 無法將集合專案新增至系統收集組。
權限
需要dc_admin的成員資格(具有 EXECUTE 許可權)固定資料庫角色才能執行此程式。
範例
下列範例會根據集合類型 Generic T-SQL Query Collector Type
建立集合專案,並將它新增至名為 Simple collection set test 2
的收集組。 若要建立指定的收集組,請在 sp_syscollector_create_collection_set中執行範例 B。
USE msdb;
GO
DECLARE @collection_item_id INT;
DECLARE @collection_set_id INT = (
SELECT collection_set_id
FROM syscollector_collection_sets
WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid UNIQUEIDENTIFIER = (
SELECT collector_type_uid
FROM syscollector_collector_types
WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params XML = CONVERT(XML, N'\<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
<Query>
<Value>SELECT * FROM sys.objects</Value>
<OutputTable>MyOutputTable</OutputTable>
</Query>
<Databases>
<Database> UseSystemDatabases = "true"
UseUserDatabases = "true"
</Database>
</Databases>
\</ns:TSQLQueryCollector>');
EXEC sp_syscollector_create_collection_item @collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_uid,
@name = 'My custom T-SQL query collector item',
@frequency = 6000,
@parameters = @params,
@collection_item_id = @collection_item_id OUTPUT;