Microsoft 發佈 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2008 或 Microsoft SQL Server 2012 其中一個可下載檔案中的修正程式。 因為修正程式是累加的,所以每個新版本都包含舊版 SQL Server 2008 R2 或 SQL Server 2008 或 Microsoft SQL Server 2012 更新版本中所包含的所有熱修復程式和安全性更新。
徵狀
請考慮下列情況。 您在 microsoft sql server 2008、Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中,執行包含數個 與謂語的查詢。 And謂語的條件會相互關聯。 在這種情況下,您會在 SQL Server 2008 中遇到較差的效能。 例如,當您執行如下所示的查詢時,就會發生這個問題:
(column1 = constant1 or column1 = constant2 or …) and (column2 = constant3 or column2 = constant4 or …) and …
原因
發生這個問題的原因是,如果查詢包含關聯 與謂語, 查詢最佳化工具會選取低效的查詢方案。 當估計的列數符合 AND謂詞的條件時,SQL Server 假設所有條件都是獨立的。 如果條件相互關聯,SQL Server 會 underestimates AND 謂語的基數。
解決方案
若要解決此問題,請套用下列累計更新。 套用更新之後,您必須啟用追蹤標誌4137,才能為基數估計 和 謂語新增邏輯。注意此更新只適用于篩選謂語。
累積更新資訊
SQL Server 2008 Service Pack 3
此問題的修正程式會在 SQL Server 2008 的累積更新7(Service Pack 3)中首次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2738350 SQL Server 2008 的累積更新套件 7 Service Pack 3注意: 因為組建是累加的,所以每個新的修正版本都包含舊版 SQL Server 2008 Service Pack 3 修復程式版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2629969 在發行 SQL Server 2008 Service Pack 3 之後發行的 SQL Server 2008 組建
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 Service Pack 1
此問題的修正程式是在 SQL Server 2008 R2 Service Pack 1 的累積更新5中第一次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2659694 SQL Server 2008 R2 Service Pack 1 的累積更新套件5注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 在發行 SQL Server 2008 R2 Service Pack 1 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 Service Pack 2
此問題的修正程式會在 SQL Server 2008 Service Pack 2 的累積更新8中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2648096 SQL Server 2008 的累積更新套件 8 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 2 修補程式套用至 SQL Server 2008 Service Pack 2 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
如需有關 SQL Server 的增量服務模型的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
935897 您可以從 SQL Server 團隊取得增量服務模型,以提供已報告問題的修補程式如需 SQL Server 更新命名架構的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
822499Microsoft SQL Server 軟體更新套件的命名架構如需軟體更新術語的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明