Microsoft 将 Microsoft SQL Server 2008 R2 SP1 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 R2 SP1 修复版本附带的所有修补程序和所有安全修补程序。
症状
请考虑以下情况:
-
管理数据仓库(MDW)数据库具有 snapshots.query_stats 表,其中包含 Microsoft sql server 2008 或 Microsoft sql Server 2008 R2 中的大量数据。
-
运行以下数据收集器作业以从 MDW 数据库中清除数据。
mdw_purge_data_ [<mdw 数据库名称>]
在这种情况下,数据收集器作业需要花费很长时间来清除数据。 注意
-
数据收集器作业将调用 core.sp_purge_data 的存储过程以清除数据。
-
有关 SQL Server 2008 R2 中的此问题的详细信息,请访问以下 Microsoft 网站:
原因
出现此问题的原因是,如果snapshots.query_stats表包含大量数据,则mdw_purge_data作业将花费很长时间来执行面向批处理的清除操作。
解决方案
服务包信息
SQL Server 2008若要解决 SQL Server 2008 中的此问题,请按照下列步骤操作:
-
获取最新的 SQL Server 2008 服务包。有关详细信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
968382 如何获取最新的 SQL Server 2008 服务包
-
对于现有的 MDW 数据库,必须在安装 SQL Server 2008 的最新 service pack 后运行 "配置管理数据仓库" 向导来更新它。
SQL Server 2008 R2若要解决 SQL Server 2008 R2 中的此问题,请按照下列步骤操作:
-
获取最新的 SQL Server 2008 R2 服务包。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2527041 如何获取最新的 SQL Server 2008 R2 服务包
-
对于现有的 MDW 数据库,必须在安装 SQL Server 2008 R2 的最新 service pack 后运行 "配置管理数据仓库" 向导来更新它。
-
按如下方式更新 sp_purge_orphaned_notable_query_text 存储过程:现有过程
-- Deleting TOP N orphaned rows in query plan table by joining info from temp table variable-- This is done to speed up delete query. DELETE TOP (@delete_batch_size) snapshots.notable_query_plan FROM snapshots.notable_query_plan AS qp , #tmp_notable_query_plan AS tmpWHERE tmp.[sql_handle] = qp.[sql_handle]
更新的过程
-- Deleting TOP N orphaned rows in query text table by joining info from temp table-- This is done to speed up delete query. DELETE TOP (@delete_batch_size) snapshots.notable_query_text FROM snapshots.notable_query_text AS qt, #tmp_notable_query_text AS tmpWHERE tmp.[sql_handle] = qt.[sql_handle]
注意 若要更正 sp_purge_orphaned_notable_query_text 存储过程的文本,这些更改是必需的,因为 delete 语句在应用 SQL Server 2008 R2 Service Pack 1 后错误地引用了 snapshots.notable_query_plan 表。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
还可以在以下博客中找到更新数据收集器存储过程的完整脚本: