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工作需要花很長的時間執行以批進行的清除操作。
解決方案
Service pack 資訊
SQL Server 2008若要在 SQL Server 2008 中解決這個問題,請遵循下列步驟:
-
取得最新的 SQL Server 2008 service pack。如需詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
968382 如何取得最新的 SQL Server service pack 2008
-
若是現有的 MDW 資料庫,您必須在安裝 SQL Server 2008 的最新 service pack 之後,再執行 [設定管理資料倉儲] 嚮導進行更新。
SQL Server 2008 R2若要在 SQL Server 2008 R2 中解決這個問題,請遵循下列步驟:
-
取得最新的 SQL Server 2008 R2 service pack。如需詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2527041 如何取得最新的 SQL Server 2008 R2 service pack
-
若是現有的 MDW 資料庫,您必須在安裝最新 service pack for SQL Server 2008 R2 之後,再執行 [設定管理資料倉儲] 嚮導進行更新。
-
更新 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]
注意: 在套用 SQL Server 2008 R2 Service Pack 1 之後,因為 delete 語句不正確參照 snapshots.notable_query_plan 資料表,所以需要這些變更來修正 sp_purge_orphaned_notable_query_text 的已儲存程式的文字。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
您也可以在下列博客中找到更新資料收集器儲存程式的完整腳本: