删除过时的应用程序数据

Microsoft SQL Server Notification Services 应用程序数据库中的大量数据可能在以下两个方面影响性能。首先,大型表可能会降低查询性能。其次,如果数据文件变得很大,SQL Server 可能会自动增加文件的大小,这会消耗系统资源。

Notification Services 使用名为“数据清空**”的进程来删除应用程序数据库中的过时数据。Vacuuming 进程根据在应用程序定义中定义的计划,自动为每个应用程序运行。

定义应用程序时,可以指定应用程序的数据保持期和清除计划。数据保持期是可以删除事件和通知数据的最小期限。例如,保持期一天指定至少在一天的时间内不能删除数据。清除计划指定为清除指定一个或多个开始时间和持续时间。有关详细信息,请参阅配置数据删除操作

数据是按量程逐个删除的,即以某个量程期间处理的所有事件和通知为一个单位进行删除。

应用程序运行时,请确保清除进程按计划运行。如果清除正在运行,但应用程序需要不同的清除配置,则可以通过编辑应用程序定义并更新该应用程序以应用更改来修改清除。必要时,可手动运行清除。

确保清除正在运行。

应定期检查每个应用程序,以确保清除按计划运行。如果应用程序数据库中积累了大量数据,应用程序的性能可能会下降,且数据库可能耗尽磁盘空间。Notification Services 提供了存储过程和性能计数器来监视应用程序,可以使用它们来监控清除。

  • NSSnapshotApplications 存储过程可以返回有关清除进程上次运行的时间以及删除的事件数和通知行的数量的数据。
  • NS$instanceName: Vacuumer 性能对象提供与 vacuumer 处理相关的性能计数器。通过监视此对象提供的计数器,可以确定 vacuumer 组件是否超时、已经清除了多少量程或准备清除多少量程。

仅当通知已被传递或没有其他重试尝试时,清除才会删除通知。清除仅删除已处理的事件。清除删除的量程是那些与其关联的通知和事件已被删除的量程。如果预计要删除的数据未能删除,则可能存在尚无法删除的相关数据。

修改清除计划

要调整 Notification Services 应用程序的清除计划,必须编辑应用程序定义,然后更新应用程序以将更改应用于应用程序数据库。有关如何定义清除计划的详细信息,请参阅配置数据删除操作

ms166387.note(zh-cn,SQL.90).gif重要提示:
如果修改了清除计划,则请配置该计划,以便清除在系统不忙的时候运行。清除会消耗系统资源,并且,vacuumer 运行时可能导致应用程序性能降低。

手动运行清除

通常情况下,最好使 vacuumer 按计划运行。如果清除导致系统性能较低或未删除足够的数据,请更改应用程序定义中的计划,然后更新该应用程序。仅当确定了清除未按计划运行,并且由于空间或性能方面的原因需要删除数据时,才手动运行清除。

ms166387.note(zh-cn,SQL.90).gif重要提示:
不要在 vacuumer 正在运行或预定要运行的情况下手动运行 vacuumer。如果过时数据保持不变,则可能出现应用程序错误。请查看应用程序定义以确定清除计划。如果应用程序不包含清除计划,则它不会自动删除过时数据。

请使用应用程序数据库中的 NSVacuum 存储过程手动运行清除。有关详细信息,请参阅 NSVacuum (Transact-SQL)

请参阅

概念

配置数据删除操作
更新应用程序

其他资源

Vacuum Element (ADF)
NSVacuum (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助