Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

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

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×