评估性能的提示
您可以通过监视系统中的事件流和通知流来评估 Microsoft SQL Server Notification Services 的状态。监视系统时需确保:
- 事件正常到达并由事件提供程序收集。可以使用的监视工具包括:
- Windows 事件查看器
- 以下性能对象中的性能计数器:NS$instance_name:事件提供程序对象 和 NS$instance_name:事件对象
- NSEventBatchList (Transact-SQL)、NSSnapshotEvents (Transact-SQL) 和 NSSnapshotProviders (Transact-SQL) 存储过程
- 生成器及时处理事件批次并生成通知,并且不跳过任何量程。您可以使用的监视工具包括:
- 通知在通知表中累积,分发服务器正确格式化通知并将通知传递到传递通道。您可以使用的监视工具包括:
- 外部传递系统接受格式化的通知并进行传递。您可以使用的监视工具包括:
- 事件查看器
- NS$instance_name:通知对象 中的性能计数器
- NSDiagnosticFailedNotifications (Transact-SQL) 存储过程
- 清空进程按应用程序定义文件 (ADF) 中的调度运行。您可以使用的监视工具包括:
- 事件查看器
- NS$instance_name:Vacuumer 对象 中的性能计数器
- NSSnapshotApplications (Transact-SQL) 存储过程
- CPU 和磁盘运转正常。有关详细信息,请参阅监视 CPU 的使用率和监视磁盘的使用情况。
- 数据库和日志文件未填满,自动增长速度不是太快,或未用尽空间。有关详细信息,请参阅 SQL Server Databases 对象。
如果应用程序未按预期运行,请参阅对 Notification Services 进行故障排除。
监视生产用应用程序
由于订阅方倾向于在类似的时间得到信息,另外,大量的事件批次经常在每天的同一时间到达,因此 Notification Services 应用程序通常既有峰值时段也有静默期。出于这一原因,在峰值时段监视应用程序,建立性能基线,然后比较性能随时间的变化就显得非常重要。
对于生产环境下的应用程序,应始终监视关键性能计数器,同时设置警报,在系统性能不佳时通知操作员。可以通过 Microsoft Windows 性能工具的“性能日志和警报”功能来设置警报。
对性能问题的响应
如果遇到性能问题,请使用各种可用的工具找出问题原因。下面是一些性能问题的解决办法:
- 为规则(事件历史记录规则、订阅事件规则和订阅调度规则)配置索引以优化应用程序。
- 不在峰值处理时段针对实例和应用程序数据库运行即席查询,因为这样会暂时锁定 Notification Services 需要的资源。
- 确保 CPU 资源满足分发的要求。分发过程通常要消耗一定的 CPU。
- 确保服务器有足够的带宽连接到传递通知的服务器或服务。
- 确保应用程序已经过优化,具有最佳的性能。为优化应用程序,您可能需要调整应用程序定义文件中的若干元素,尤其是 ApplicationExecutionSettings 元素中的元素。
- 将数据库文件、日志文件和 tempdb 数据库置于三个独立的物理磁盘中。在数据库系统中,系统生成通知的性能经常受磁盘资源的限制。
在出现任何性能问题时,应通过查看性能计数器、使用报告以及检查应用程序日志中的错误来确定问题。
请参阅
概念
选择监视工具
Notification Services 性能对象
使用性能日志和警报
使用报告来分析性能
指定应用程序执行设置