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 (Transact-SQL) 系统视图。
[ @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
中运行。
必须先停止要向其添加收集项的收集组,然后才能创建收集项。 无法将集合项添加到系统收集组。
权限
需要具有 EXECUTE 权限 的 dc_admin (的成员身份) 固定数据库角色才能执行此过程。
示例
下面的示例根据收集类型Generic T-SQL Query Collector Type
创建一个收集项,并将该项添加到名为 Simple collection set test 2
的收集组。 若要创建指定的收集组,请在 sp_syscollector_create_collection_set (Transact-SQL) 中运行示例 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;
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈