NSAdministrationHistory (Transact-SQL)
为 Microsoft SQL Server Notification Services 实例生成管理历史报表。此报表包含由该实例承载的所有应用程序的信息,其中包括在定义的时间间隔内处理的事件、通知和订阅。
语法
[ schema_name . ] NSAdministrationHistory
[ [ @ApplicationName = ] 'app_name' ],
[, [ @ReportingIntervalInMinutes = ] interval ]
[, [ @StartDateTime = ] 'start_date_time' ]
[, [ @EndDateTime = ] 'end_date_time' ]
参数
[ @ApplicationName = ] 'app_name'
在实例配置文件 (ICF) 中定义的 Notification Services 应用程序名称。app_name 的数据类型为 nvarchar(255),其默认值为 NULL,指示对该实例承载的所有应用程序进行报告。
[ @ReportingIntervalInMinutes = ] interval
每个报告间隔的分钟数。每个间隔在报表中占一行。interval 的数据类型为 int,默认值为 60,指明每个报告间隔为 60 分钟。
[ @StartDateTime = ] 'start_date_time'
报表的起始日期和时间,使用 UTC(通用协调时间或格林尼治标准时间)时间表示。start_date_time 的数据类型为 datetime,其默认值比 @EndDateTime 值提前一个月。
[ @EndDateTime = ] 'end_date_time'
报表的结束日期和时间,使用 UTC 时间表示。end_date_time 值的数据类型为 datetime。默认值为 GETUTCDATE 函数的结果,此函数将返回调用存储过程的时间。
返回代码值
无
结果集
列名 | 数据类型 | 说明 |
---|---|---|
ApplicationName |
nvarchar(255) |
行汇总的应用程序名称。对于汇总实例的行,该值为 NULL。 |
IntervalStartDateTime |
datetime |
报告间隔的开始日期和时间,使用 UTC 时间表示。 |
IntervalEndDateTime |
datetime |
报告间隔的结束日期和时间,使用 UTC 时间表示。 |
EventBatchCollectedCount |
int |
在报告间隔内收集的事件批数,基于事件批次 EndCollectionTime 值。 |
EventsCollectedCount |
int |
在报告间隔内收集的事件数,基于事件批次 EndCollectionTime 值。 |
EventsCollectedPerSecond |
float |
在收集事件的过程中,在报告间隔内每秒收集的平均事件数。 |
EventBatchesAwaitingGeneration |
int |
写入数据库但未由生成器处理的事件批数。 |
EventBatchesInCollection |
int |
报告间隔内处于事件收集阶段的事件批数。 |
NotificationBatchGeneratedCount |
int |
在报告间隔内写入的通知批数,基于通知批次 EndCollectionTime 值。 |
NotificationsGeneratedCount |
int |
在报告间隔内生成的通知批数,基于通知批次 EndCollectionTime 值。 |
NotificationsGeneratedPerSecond |
float |
在报告间隔内每秒生成的平均通知数。 |
NotificationBatchesInGeneration |
int |
在报告间隔内,正在由生成器创建的进程中的通知批数。 |
NotificationBatchesAwaitingDistribution |
int |
在报告间隔内,等待分发服务器拾取的通知批数。 |
NotificationsSuccessfulDeliveredCount |
int |
报告间隔内成功传递的通知数。 |
NotificationsFailedDeliveryCount |
int |
报告间隔内传递失败并标记为已过期的通知数。 |
WorkItemsInProgress |
int |
报告间隔内分发的工作项数。 |
SubscriptionsAddedCount |
int |
在报告间隔内添加到应用程序的订阅数。 |
ScheduledSubscriptionsAdded |
int |
在报告间隔内添加到应用程序的预定订阅数。 |
SubscriptionsModified |
int |
在报告间隔内在应用程序中修改的订阅数。 |
SubscribersAddedCount |
int |
在报告间隔内添加到实例的订阅方数。 |
SubscriberDevicesAddedCount |
int |
在报告间隔内添加的订阅方设备数。 假定此设备在添加订阅方的同时添加。 |
SubscriberDevicesModifiedCount |
int |
在报告间隔内更新的订阅方设备数。 假定此设备在更新订阅方的同时更新。 |
备注
创建实例时,Notification Services 将在该实例数据库中创建 NSAdministrationHistory 存储过程。在更新实例时,Notification Services 会重新编译该存储过程。
此存储过程位于实例架构中,该实例架构由实例配置文件 (ICF) 的 SchemaName 元素指定。如果没有提供架构名称,默认架构为 dbo。
该报表收集的数据量由应用程序定义文件 (ADF) 的 VacuumDuration 元素中指定的 vacuum 进程保持期限制。只能分析未删除的数据。
若要确定当前的 UTC 日期和时间,请运行 SELECT GETUTCDATE() Transact-SQL 查询。当前的 UTC 时间由计算机操作系统中的当前本地时间和时区设置派生而来。
权限
执行权限默认授予 NSAnalysis 数据库角色、db_owner 固定数据库角色和 sysadmin 固定服务器角色的成员。
示例
A. 网络流量管理历史
以下实例为 Flight 应用程序生成管理历史报表。该实例使用默认的数据库设置,这会将所有实例对象置于 dbo 架构中。
报告间隔为 120 分钟。报表在 2004 年 9 月 22 日上午 11:30 开始,在当天下午 2:30 结束。
EXEC dbo.NSAdministrationHistory
@ApplicationName = N'Flight',
@ReportingIntervalInMinutes = 120,
@StartDateTime = '2004-09-22 11:30:00',
@EndDateTime = '2004-09-22 14:30:00';
B. 所有应用程序管理历史
以下实例为该实例承载的所有应用程序生成管理历史报表。在本示例中,存储过程位于在 ICF 的 SchemaName 元素中指定的 FlightInstance 架构中。
该报表使用默认值,这表明使用 60 分钟的报告间隔显示上个月的所有数据。
EXEC FlightInstance.NSAdministrationHistory;
请参阅
参考
Notification Services 存储过程 (Transact-SQL)
其他资源
Notification Services 性能报告
SchemaName Element (ICF)