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

Microsoft 發佈 Microsoft SQL Server 2008 R2 Service Pack 1 (SP1)或 Microsoft SQL Server 2012 (以一個可下載的檔案修正)。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 Service Pack 1 (SP1)或 Microsoft SQL Server 2012 更新版本中所包含的所有熱修復程式及所有安全性更新。

徵狀

請試想下列案例:

  • 您從 Microsoft SQL Server 2005 升級到 Microsoft SQL Server 2008,或是升級至 microsoft sql server 2008 R2 或 microsoft SQL Server 2012。

  • 您執行的查詢會使用 sp_cursoropen 的已儲存程式,然後指定 rowcount 參數來提取資料表的前幾列。

在這種情況下,效能可能會比您在 SQL Server 2005 中執行相同的查詢慢。

原因

發生這個問題的原因是查詢優化程式使用靜態的游標方案,而不是動態游標規劃。 若是靜態的游標方案,SQL Server 會讀取所有列,並將它們插入到游標工作表中。 不過,對於動態游標方案,SQL Server 只會讀取所需的資料列。

解決方案

累積更新資訊

SQL Server 2012

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

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

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 修補程式套用至 SQL Server 2012 的安裝。

SQL Server 2008 R2 SP1 的累積更新套件5

套用此熱修復程式後,請啟用追蹤標誌4199。 此問題的修正程式是在累積更新5中第一次發行。如需有關如何取得 SQL Server 2008 R2 SP1 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

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

2567616 在發行 SQL Server 2008 R2 SP1 之後發行的 SQL Server 2008 R2 組建

因應措施

若要解決此問題,請將 FAST 查詢提示新增至查詢。

其他相關資訊

如需如何使用查詢提示的詳細資訊,請造訪下列 MSDN 網站:

如何使用查詢提示的一般資訊如需有關追蹤標記4199的詳細資訊,請流覽下列網站:

有關追蹤標誌的一般資訊4199

狀態

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

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

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

感謝您的意見反應!

×