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.

徵狀

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

每個新的 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 產品確實有上述問題。

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!

×