使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

Microsoft 發佈 Microsoft SQL Server 2012 修正成一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2012 修正版本中包含的所有修復程式及所有安全性修正程式。

徵狀

請試想下列案例:

  • 您可以在 Microsoft SQL Server 2012 中建立一個或多個資料品質用戶端的資料品質專案。

  • 您已安裝 SQL Server 2012 (SQL Server 2012 CU1)的累積更新1,然後執行 DQSInstaller 檔案,以升級 Data Quality Services (DQS)目錄並新增物件。

  • 您嘗試使用資料品質用戶端刪除其中一個已建立的資料品質專案。

在這種情況下,資料品質用戶端會停止回應,而 SQL Server 資料庫引擎會進入無限迴圈。 此外,sqlservr 程式也會遇到高 CPU 使用量。 注意事項

  • 若要從此問題復原,請重新開機資料品質用戶端和 DQS。

  • 只有在您安裝 SQL Server 2012 CU1 之前建立的資料品質專案,才會發生此問題。

原因

之所以會發生這個問題,是因為更新迴圈計數器不正確,導致系統儲存程式中發生無限迴圈。注意這個問題是由 SQL Server 2012 CU1 中的回歸所造成。

解決方案

累積更新資訊

SQL Server 2012 的 Service pack 資訊

若要解決此問題,請取得最新的 SQL Server 2012 service pack。如需詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2755533 如何取得最新的 SQL Server service pack 2012

SQL Server 2012

此問題的修正程式是在 SQL Server 2012 的累積更新2中第一次發行。如需如何取得此 SQL Server 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2703275 SQL Server 2012 的累積更新套件2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建

因應措施

若要暫時略過這個問題,請使用下列其中一個方法。方法 1若要新增可讓儲存程式無限迴圈繼續並正確結束的啞元程式,請依照下列步驟進行:

  1. 執行下列查詢,找出您嘗試刪除之受影響之專案的架構名稱:

    SELECT 'KnowledgeManagement'+CAST(ID AS NVARCHAR) AS SchemaName, Name FROM DQS_MAIN.dbo.A_KNOWLEDGEBASE WHERE TYPE=2
  2. 使用傳回的 SchemaName 值,然後在 SQL Server Management Studio 中執行類似下列所示的語句,以提供相符的架構名稱和資料品質專案識別碼。 系統會針對架構及對應的資料品質專案建立新的虛擬程式。 因此,無限迴圈會正常運作。

    USE DQS_PROJECTSGOCREATE PROCEDURE DQProject<ID>.NewIndexParseTrigramsFromLexiconAS BEGINPRINT 'THIS IS A DUMMY PROCEDURE TO MAKE DELETE WORK for Microsoft KB Article 2705571';END

    注意 <識別碼> 代表所要刪除之資料品質專案的內部識別碼。

  3. 確認已從資料品質用戶端(如預期)刪除資料品質專案。

方法 2如果您必須快速終止迴圈程式以節省 CPU 資源,請執行下列語句來找出正確的會話。 不過,取消迴圈程式並不會乾淨地刪除資料品質專案。 下列 Transact-sql 語句可協助識別及終止正確的會話。 如果正在執行多個來自資料品質用戶端的會話,您可能必須多次執行語句:

DECLARE @session smallint, @text nvarchar(2000), @killcommand nvarchar(200)SELECT TOP 1 @session=s.session_id, @text=st.textFROM sys.dm_exec_sessions sFULL OUTER JOIN sys.dm_exec_requests r ON s.session_id=r.session_idCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS stWHERE program_name like 'DQ Services Client: Client Id = %, KB Id = %, Proxy = KnowledgebaseManagementEntryPointClient'AND s.status='running';SELECT 'Killing this DQS session:', @session SessionID, @text QueryText;SET @killcommand=N'Kill '+ cast(@session as nvarchar)+';'EXEC sp_executesql @killcommand;

注意: 如果您使用方法2來終止 DQS 連線,您可能會在資料品質用戶端中收到下列錯誤訊息:

SQL Server Data Quality Services--------------------------------------------------------------------------------<MessageId>:發生 ApplicationUnhandledExceptionAn 未處理的例外狀況。 如需更多詳細資料,請參閱 Data Quality Services 用戶端--------------------------------------------------------------------------------記錄 SqlClient。 SqlException (0x80131904):目前命令發生嚴重錯誤。 結果(如果有的話)應該捨棄。

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

參考

如需如何升級 DQS 的詳細資訊,請前往下列 Microsoft TechNet 網站:

如何升級 DQS

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×