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

徵狀

假設您在應用程式中使用 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 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

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

感謝您的意見反應!

×