NSQuantumExecutionTime (Transact-SQL)
返回有助于对长时间运行的生成器量程进行标识的信息,使用这些信息可以更详细地分析量程。
语法
[ schema_name . ] NSQuantumExecutionTime
[ @MinExecutionTime = ] min_time
[, [ @MaxExecutionTime = ] max_time ]
[, [ @SinceQuantumInitialized = ] since_init ]
参数
[ @MinExecutionTime = ] min_time
指定报告中将包括的量程的最小执行时间。min_time 的数据类型为 int,以秒为单位指定,无默认值。
[@MaxExecutionTime = ] max_time
指定报告中将包括的量程的最大执行时间。max_time 的数据类型为 int,以秒为单位指定,默认值为 min_time 加 5 所得的时间。
[ @SinceQuantumInitialized = ] since_init
指定报告是否包括上次使用 NSSetQuantumClock 或 NSSetQuantumClockDate 存储过程重置量程时钟之前的量程。since_init 的数据类型为 tinyint,可以为 0 或 1。默认值为 1,表示只包含上次重置后的量程期间。0 包括在上次重置前的量程期间。
返回代码值
无
结果集
列名 | 数据类型 | 说明 |
---|---|---|
QuantumId |
int |
量程的唯一 ID。可以将此 ID 提供给 NSQuantumDetails 存储过程,以获取有关量程的其他信息。 |
QuantumStatusDescription |
nvarchar(255) |
说明量程当前状态的文本。 |
ExecutionTimeInMS |
bigint |
生成器处理量程所需的毫秒数。 |
QuantumStartTime |
datetime |
量程所表示的时间段的开始时间,使用 UTC 表示。 |
QuantumEndTime |
datetime |
量程所表示的时间段的结束时间,使用 UTC 表示。结束时间是开始时间加上量程持续时间。 |
ExecutionStartTime |
datetime |
生成器开始处理量程的实际日期和时间,使用 UTC 表示。 |
ExecutionEndTime |
datetime |
生成器完成处理量程的实际日期和时间,使用 UTC 表示。 |
QuantumDurationLimit |
nvarchar(20) |
指示量程执行时间是低于应用程序定义文件 (ADF) 中定义的量程持续时间还是高于该时间。 |
ChronicleQuantumLimit |
nvarchar(20) |
指示量程执行时间是否大于 ChronicleQuantumLimit * QuantumDuration(在 ADF 中定义)。这将指示执行量程的时间是否导致应用程序超过其历史记录量程限制。 |
SubscriptionQuantumLimit |
nvarchar(20) |
指示量程执行时间是否大于 SubscriptionQuantumLimit * QuantumDuration(在 ADF 中定义)。这将指示执行量程的时间是否导致应用程序超过其订阅量程限制。 |
ChronicleRuleFiringCount |
int |
量程中的事件历史记录规则触发数。 |
EventSubscriptionRuleFiringCount |
int |
量程中的事件订阅规则触发数。 |
ScheduledSubscriptionRuleFiringCount |
int |
量程中的计划订阅规则触发数。 |
EventNotificationsGenerated |
int |
在量程持续期间,由事件触发规则生成的通知数。 |
ScheduledNotificationsGenerated |
int |
在量程持续期间,由预定的订阅规则生成的通知数。 |
备注
创建实例时,Notification Services 会在应用程序数据库中创建 NSQuantumExecutionTime 存储过程。在更新应用程序时,Notification Services 会重新编译此存储过程。
此存储过程位于应用程序的架构中,该架构由应用程序定义文件 (ADF) 的 SchemaName 元素指定。如果没有提供架构名称,默认架构为 dbo。
在标识相关的量程后,可能需要进行进一步的分析。若要获取有关量程的详细信息,请使用 NSQuantumDetails 存储过程。
权限
执行权限默认授予 NSAnalysis 数据库角色、db_owner 固定数据库角色和 sysadmin 固定服务器角色的成员。
示例
A. 使用默认值
以下示例显示如何为上次初始化以来、执行时间为 0 到 5 秒的所有量程生成一个量程执行时间报告。
应用程序使用默认的 SchemaName 设置,这会将所有应用程序对象置于 dbo 架构中。
EXEC dbo.NSQuantumExecutionTime
@MinExecutionTime = 0;
B. 返回介于最小值和最大值之间的所有量程
以下示例显示如何为执行时间在 30 秒至 35 秒之间(值 NULL 与 min_time + 5 所得的时间相同)的所有生成器量程生成一个量程执行时间报告。
在此示例中,存储过程(类似于所有其他应用程序对象)位于 Stock 架构中,正如 ADF 的 SchemaName 元素中指定的一样。
EXEC Stock.NSQuantumExecutionTime
@MinExecutionTime = 30,
@MaxExecutionTime = NULL,
@SinceQuantumInitialized = 0;
请参阅
参考
Notification Services 存储过程 (Transact-SQL)
NSQuantumDetails (Transact-SQL)
其他资源
Notification Services 性能报告
SchemaName Element (ADF)