NSDiagnosticDeliveryChannel (Transact-SQL)

生成 Microsoft SQL Server Notification Services 应用程序的传递通道报表。该报表可以帮助您分析传递通道活动和未送达通知。

语法

[ schema_name . ] NSDiagnosticDeliveryChannel 
    [ @ApplicationName = ] 'app_name' ,
    [ @DeliveryChannelName = ] 'delivery_channel_name' 
    [, [@ReportingInterval = ] interval ] 
    [, [@StartDateTime = ] 'start_date_time' ] 
    [, [@EndDateTime = ] 'end_date_time' ] 

参数

[ @ApplicationName = ] 'app_name'

Notification Services 应用程序的名称,它是在配置文件中定义的。app_name 的数据类型为 nvarchar(255),并且无默认值。

[ @DeliveryChannelName = ] 'delivery_channel_name'

传递通道的名称,它是在配置文件中定义的。delivery_channel_name 的数据类型为 nvarchar(255),并且无默认值。

[ @ReportingInterval = ] interval

在每个报告间隔中的生成器量程数。对于每个时间间隔,该报表均包含一行。interval 的数据类型为 int,默认值为 1,指示每个时间间隔有一个生成器量程。

量程持续时间是在应用程序定义文件 (ADF) 中定义的。

[ @StartDateTime = ] 'start_date_time'

报告的开始日期和时间,使用 UTC(通用协调时间或格林尼治标准时间)表示。start_date_time 的数据类型为 datetime。默认值为 @EndDateTime - (5 * QuantumDuration * @ReportingInterval).使用默认值,结果集最多包含五行,每行表示一个报告间隔。

[ @EndDateTime = ] 'end_date_time'

报告的结束日期和时间,使用 UTC 表示。end_date_time 的数据类型为 datetime。默认值是您调用存储过程的时间(使用 UTC 表示)。

返回代码值

0(成功)或 1(失败)

结果集

列名 数据类型 描述

IntervalStartDateTime

datetime

报告间隔的开始日期和时间,使用 UTC 表示。

IntervalEndDateTime

datetime

报告间隔的结束日期和时间,使用 UTC 表示。

NotificationBatchesDelivered

int

在报告间隔期间传递的通知批数。

NotificationDeliveryAttempts

int

在报告间隔期间在传递通道上尝试的通知传递数。

NotificationSuccessfulDeliveries

int

在报告间隔期间在传递通道上成功发送的通知数。

NotificationAttemptsFailed

int

在报告间隔期间在传递通道上失败的通知传递尝试数。

NotificationToMessageRatio

float

在报告间隔期间,生成的通知数与发送的消息数的比率。

对于摘要传递或多播传递,一条消息可以包括多个通知。此列指示摘要消息或多播消息中平均包括多少条通知。

备注

当您创建实例时,Notification Services 将在实例数据库中创建 NSDiagnosticDeliveryChannel 存储过程。在更新实例时,Notification Services 会重新编译该存储过程。

此存储过程位于实例架构中,该实例架构由实例配置文件 (ICF) 的 SchemaName 元素指定。如果没有提供架构名称,默认架构为 dbo

若要确定当前 UTC 日期和时间,请在 SQL Server Management Studio 中运行 SELECT GETUTCDATE()。当前的 UTC 时间源自运行 SQL Server 的计算机操作系统中的当前本地时间和时区设置。

权限

执行权限默认授予 NSAnalysis 数据库角色、db_owner 固定数据库角色和 sysadmin 固定服务器角色的成员。

示例

A. 指定报告间隔、开始时间和结束时间

下面的示例为 Flight 应用程序和 FileChannel 传递通道生成传递通道报告。该实例使用默认的数据库设置,这会将所有实例对象置于 dbo 架构中。

报表的每行包括 50 个生成器量程。报表在 2004 年 5 月 23 日的下午 5:00 启动,在同一天的下午 6:00 结束:

EXEC dbo.NSDiagnosticDeliveryChannel 
    @ApplicationName = N'Flight', 
    @DeliveryChannelName = N'FileChannel', 
    @ReportingInterval = 50, 
    @StartDateTime = '2004-05-23 17:00',
    @EndDateTime = '2004-05-23 18:00';

B. 使用默认值和命名架构

下面的示例为 Flight 应用程序和 FileChannel 传递通道生成传递通道报告。在此示例中,存储过程(类似于所有其他实例对象)位于 FlightInstance 架构中,正如 ICF 的 SchemaName 元素中指定的一样。

报表使用默认值,该值指定在每行中显示一个生成器量程,总计显示五个生成器量程。

EXEC FlightInstance.NSDiagnosticDeliveryChannel 
    @ApplicationName = N'Flight', 
    @DeliveryChannelName = N'FileChannel';

请参阅

参考

Notification Services 存储过程 (Transact-SQL)

其他资源

Notification Services 性能报告
SchemaName Element (ICF)

帮助和信息

获取 SQL Server 2005 帮助