使用报告来分析性能

更新日期: 2006 年 7 月 17 日

分析 Microsoft SQL Server Notification Services 的性能时,首先要确定实例及其应用程序的性能情况。若要获取该信息,请使用应用程序快照和管理报告:

上述报告均能帮助您确定应用程序是否按预期方式运行。如果未按预期方式运行,请使用下面的方法分析性能不佳的原因。

分析性能不佳的原因

分析 Notification Services 应用程序应先分析生成器量程。生成器是 Notification Services 的核心,当实例运行时,它应每隔一段时间(称为“量程”)触发一次。您可以在应用程序定义文件 (ADF) 中指定量程持续时间。生成器将使用量程持续时间来确定触发 ADF 中所定义规则的频率。

分析性能问题时,一般先要找到未能如期结束的量程期,然后确定在这些量程中都发生了哪些情况。请使用下面的方法来定位要分析的量程、获取有关量程的详细信息,然后分析实例和应用程序的具体情况。

有关量程间隔的详细信息,请参阅订阅处理体系结构指定生成器量程持续时间

步骤 1:确定相关量程

分析 Notification Services 应用程序的第一步是确定一组相关量程期。造成性能不佳的量程期一般都有如下特征:

  • 量程的执行期比预期的要长。产生这一现象的原因有多种,需进一步分析应用程序才能确定具体原因。
  • 量程标记为失败。量程期失败的原因也有多种。如规则未按计划运行。
  • 量程被跳过。为保证生成器始终处理当前数据,可将生成器配置为必要时跳过量程期。量程被跳过通常是某些量程的运行时间过长所产生的副作用。

为确定运行时间过长、失败或跳过的量程期,Notification Services 提供了量程性能、量程执行时间、量程失败和跳过的量程等多种报告。

  • 量程性能报告按量程执行时间对量程进行分类。它能帮助用户确定一般情况下的量程执行时间。该报告由 NSQuantumPerformance (Transact-SQL) 存储过程生成。
  • 量程执行时间报告包含运行时间超过指定时间的量程。通过量程 ID 可进一步分析量程。该报告由 NSQuantumExecutionTime (Transact-SQL) 存储过程生成。
  • 量程失败报告提供了与失败的生成器量程有关的信息。如果量程无法完成所需操作(如规则触发),量程就会失败。该报告由 NSQuantumFailures (Transact-SQL) 存储过程生成。
  • 跳过的量程报告提供了与跳过的生成器量程有关的信息。如果生成器落后,且 ADF 中设置了量程期限,则量程就会被跳过。该报告由 NSQuantumsSkipped (Transact-SQL) 存储过程生成。

**假设情节:**通过 NSQuantumPerformance 存储过程,您发现量程 188 的运行时间是其他量程的两倍。下一步将确定量程中发生的情况。

步骤 2:分析量程的详细信息

确定了相关量程后,就应确定量程中发生的情况。要获取有关量程的详细信息,请使用量程详细信息和量程列表报告。

  • 量程详细信息报告提供了指定量程的详细信息。通过该报告可解决量程运行时间过长的问题,或分析量程处理情况。该报告由 NSQuantumDetails (Transact-SQL) 存储过程生成。
  • 量程列表报告提供了指定时间段内处理的量程的信息,其中的量程均按执行顺序显示。该报告由 NSQuantumList (Transact-SQL) 存储过程生成。

**假设情节:**接着上述步骤 1 中的假设情节,为量程 188 运行 NSQuantumDetails 存储过程。根据报告,发现触发其中一条规则所花费的时间占量程时间的 90%。下一步查看该量程和其他量程中的事件批和通知批次。查看报告时,注意到该量程中处理的是事件批 60 和通知批次 40。

步骤 3:分析详细的应用程序数据

分析量程期后,可能需将注意力集中在量程中的特定事件、订阅或通知上。事件批详细信息报告、已预定的订阅的详细信息报告和通知批次详细信息报告提供了与应用程序数据有关的详细信息。

  • 事件批详细信息报告提供了有关事件类的特定事件批的信息。报告既显示了事件批的摘要信息,也显示了批次中各事件的信息。该报告由 NSEventBatchDetails (Transact-SQL) 存储过程生成。使用 NSEventBatchList (Transact-SQL) 存储过程获取事件批 ID。
  • 已预定的订阅的详细信息报告提供了有关订阅类的所有订阅的信息。该报告由 NSScheduledSubscriptionDetails (Transact-SQL) 存储过程生成。
  • 如果使用条件操作,则订阅条件信息报告将返回用于评估基于条件的订阅的查询。该报告由 NSSubscriptionConditionInformation (Transact-SQL) 存储过程生成。
  • 通知批次详细信息报告提供了有关通知类的特定通知批次的信息。报告既显示了通知批次的摘要信息,也显示了批次中各通知的信息。该报告由 NSNotificationBatchDetails (Transact-SQL) 存储过程生成。使用 NSNotificationBatchList (Transact-SQL) 存储过程获取通知批次 ID。
  • 还可以使用任何诊断报告快照报告按不同详细级别查看应用程序。

**假设情节:**为结束量程 188 的分析,您先针对事件批 60 运行 NSEventBatchDetails 存储过程,并注意到此量程期内收集到大量的事件。使用 NSDiagnosticEventClass,将发现与大多数事件类相比,该事件批中确实有过多的事件,这说明该量程的执行时间比正常情况要长,这并不表明应用程序存在问题,而只是表明应用程序需要优化(如优化查询和添加索引),以提高性能。

请参阅

概念

Notification Services 性能报告
监视 Notification Services 性能和活动

帮助和信息

获取 SQL Server 2005 帮助