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 SQL Server 2012年執行個體之間設定連結的伺服器。

  • 使用一個定序,例如不區分大小寫的定序被設定本機伺服器。

  • 遠端伺服器會有不同的定序,從本機伺服器,例如區分大小寫的定序裡,均設定一個物件。

  • 連線是從 Microsoft JDBC 驅動程式的 SQL Server,SQL Server、 SQL OLE DB 提供者,或 SQL 原生的用戶端的 Microsoft ODBC 驅動程式到本機伺服器。

  • 驅動程式會呼叫sp_prepexec預存程序在本機伺服器的備製陳述式中執行異動性 SQL 更新查詢。

  • 查詢更新遠端伺服器上的資料表。這包括使用不同的定序,從本機伺服器的資料行物件。

在這個案例中,您可能會遇到效能變慢的查詢執行。如果您檢查更新查詢的執行計劃時,您可能會看到遠端掃描會執行在遠端伺服器的資料表,不篩選。因此,查詢會掃描遠端資料表,然後擷取至本機伺服器的所有資料列時,可能會執行許多讀取。

例如,查詢已準備好在本機伺服器具有預設的不區分大小寫定序,而遠端伺服器中有一個資料表T1包含資料行是區分大小寫。此更新程式會掃描所有的資料列的T1
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

原因

準備的更新查詢將會掃描遠端資料表,定序不符兩台伺服器上時,就會發生這個問題。

SQL Server 的每個新的累積更新包含的所有修補程序與安全性修正,全都包含在先前的累積更新。检验 SQL Server 的最新的累積更新︰


Hotfix 資訊支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。

如果 hotfix 可供下載,在此知識庫文件頂端將出現「可用的 Hotfix」區段。如果這個區段不會出現,將要求提交給 Microsoft 客戶服務及支援取得 Hotfix。

注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰

http://support.microsoft.com/contactus/?ws=support注意「 下載 Hotfix 」 表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件若要套用此 hotfix,您必須安裝 SQL Server 2012年。

登錄資訊您不必套用此 hotfix 後,變更登錄。

Hotfix 取代資訊此 hotfix 不會取代任何其他 hotfix。


狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

因應措施

工作有很多問題,請使用下列方法之一︰

  • 請勿在用戶端應用程式的原始程式碼中使用已備妥的陳述式。您可以改用臨機操作陳述式或可呼叫的陳述式,例如預存程序如果驅動程式支援這些介面。

  • 兩台伺服器上使用相符的定序。

更多的資訊

若要啟用追蹤旗標,新增 [啟動參數-T4199或TRACEON(4199,-1) DBCC之前已備妥的陳述式被編譯以啟用行為。

您可以使用下列方法之一來啟用追蹤旗標︰

  • 您啟動 SQL Server 之前,請使用 Microsoft SQL Server 組態管理員、 以滑鼠右鍵按一下受影響的執行個體,並新增 [啟動參數-T4199 ,讓它在未來保存在重新啟動,以及之間的執行個體的所有連接。

  • 動態啟用設定在執行階段,一旦取得啟動服務,以及全域所有連線的"(-1)。"請務必釋放程序快取,如果您打算進行測試以參數開啟或關閉。

    使用下列命令以啟用設定全域並以動態方式︰
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    使用下列命令以停用設定全域並以動態方式︰
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


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!

×