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.

徵狀

假設您在應用程式中使用 sqlncli11 ODBC 驅動程式來存取 Microsoft SQL Server 2012 或 SQL Server 2014。 當您使用伺服器游標與 SQLFetch/ SQLGETDATA 函數存取 SQL server 中的一些二進位大型物件(BLOB)資料時,特別是對於較大的資料類型(例如 Varbinary (max)或 Varchar (max)),會發生效能問題。

原因

這是在 SQL Server 2012 ODBC 驅動程式中實現 SQLFetch/ SQLGetData 函數的設計問題。 當查詢使用任何伺服器游標時,ODBC 驅動程式會在SQLFetch實現期間調用sp_cursorfetch ,而伺服器會將所有的 BLOB 傳送給用戶端。 然後,在 SQLGetData 執行時, sp_cursor 會再次產生所有 BLOB。 這會大大影響大型資料類型(例如 Varbinary (max)或 Varchar (max))的效能。

解決方案

累積更新資訊

新的實現會執行sp_cursoroption ,以取得sp_cursorfetch之前的 TEXTPTR_ONLY,然後在sp_cursor之前調用sp_cursoroption將它放回 TEXTDATA。 這樣可以改善效能。此問題最初是在 SQL Server 的後續累積更新中修正。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:

狀態

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

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!

×