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

徵狀

當您填入包含許多資料列的資料表變數,然後將它與其他資料表加入時,查詢優化程式可能會選擇低效的查詢方案,這可能會導致查詢效能變慢。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2012 Service pack 2

Service pack 是累加的。 每個新的 service pack 都包含舊版 service pack 中的所有修正程式,以及任何新的修正程式。 我們建議您將最新的 service pack 和該 service pack 的最新累計更新套用。 在安裝最新的 service pack 之前,您不需要安裝舊版 service pack。 使用下列文章中的表格1,尋找最新 service pack 及最新累計更新的詳細資訊:

如何判斷 SQL Server 及其元件的版本、版本與更新層級

其他相關資訊

當您在批次或程式中使用資料表變數時,查詢會針對資料表變數的初始空白狀態進行編譯和優化。 如果這個資料表變數是在執行時間中填入許多資料列,預先編譯的查詢方案可能不再是最佳的。 例如,查詢可能會使用嵌套迴圈加入資料表變數,因為只有少量的資料列通常會更有效率。 如果資料表變數有數百萬個數據列,此查詢方案可能會造成效率低下。 在這種情況下,散列連接可能是較佳的選擇。 若要取得新的查詢方案,必須重新編譯它。 不過,與其他使用者或臨時資料表不同的是,資料表變數中的列數變更不會觸發查詢重新編譯。 通常,您可以使用選項(重新編譯)來解決這個問題,這會有自己的額外費用。Trace 標誌2453可在沒有選項(重新編譯)的情況下,獲得查詢重新編譯的好處。 此追蹤標誌與選項(重新編譯)在兩個主要方面有所不同。(1)它會使用與其他資料表相同的列數閾值。 查詢不需要針對每個執行進行編譯,就不會像是 OPTION (重新編譯)。 只有當列計數變更超出預先定義的閾值時,才會觸發重新編譯。(2)選項(重新編譯)會強制查詢預覽參數並為其優化查詢。 此追蹤標誌不會強制進行參數查看。注意: 此追蹤旗標必須在執行時間開啟。 您無法在 QUERYTRACEON 中使用此追蹤標記。 您必須小心使用此追蹤標誌,因為它可以增加查詢重新編譯的數目,這可能會比更完善的查詢優化節省成本。

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

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

感謝您的意見反應!

×