Microsoft 將 Microsoft SQL Server 2008 Service Pack 3 發佈為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 Service Pack 3 修復程式版本中包含的所有熱修復程式及所有安全性修正程式。
徵狀
假設您在 sql server 2008 R2 或 SQL Server 2012 中,在 SQL Server 2008 的查詢執行方案中執行使用並行的查詢。 查詢方案符合下列條件:
-
查詢執行方案包含點陣圖運算子,以及雜湊聯接或合併連接。
-
雜湊聯接或 merge 連接謂詞包含對可為 Null 的資料行 進行 比較。
在這種情況下,查詢會傳回不正確的結果。
原因
發生這個問題的原因是,當 SQL Server 在表格掃描或索引掃描中使用點陣圖篩選時,會廢棄 Null 值。
解決方案
累積更新資訊
SQL Server 2012 的累積更新套件 1 Service Pack 1
此問題的修正程式是在累積更新1中第一次發行。如需有關如何取得適用于 SQL Server 2012 Service Pack 1 的累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2765331 SQL Server 2012 的累積更新套件 1 Service Pack 1注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2012 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2772858 在發行 SQL Server 2012 Service Pack 1 之後發行的 SQL Server 2012 組建
SQL Server 2008 R2 Service Pack 2
此問題的修正程式是在 SQL Server 2008 R2 Service Pack 2 的累積更新2中第一次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2740411 SQL Server 2008 R2 Service Pack 2 的累積更新套件2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2730301 在發行 SQL Server 2008 R2 Service Pack 2 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 R2 Service Pack 1
此問題的修正程式是在累積更新8中第一次發行。如需有關如何取得適用于 SQL Server 2008 R2 Service Pack 1 之累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2723743 SQL Server 2008 R2 SP1 的累積更新套件8注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 Service Pack 1 修正版本中所包含的所有修復程式及所有安全修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 在發行 SQL Server 2008 R2 SP1 之後發行的 SQL Server 2008 R2 組建
SQL Server 2012
此問題的修正程式是在 SQL Server 2012 的累積更新3中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2723749 SQL Server 2012 的累積更新套件3注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2012 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 修補程式套用至 SQL Server 2012 的安裝。
SQL Server 2008 Service Pack 3
此問題的修正程式是在 SQL Server 2008 的累積更新6(Service Pack 3)中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2715953 SQL Server 2008 累積更新套件 6 Service Pack 3注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2629969 在發行 SQL Server 2008 Service Pack 3 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 3 修復程式套用至 SQL Server 2008 Service Pack 3 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
因應措施
若要解決此問題,請使用下列其中一種方法來避免在查詢中使用並行性:
-
新增 MAXDOP 1 查詢提示選項。
-
將 [ 最大並行度 ] 選項設定為 1。
其他相關資訊
如需並行雜湊連接的詳細資訊,請移至下列 MSDN 博客網站:
並行雜湊連接的一般資訊如需有關查詢執行點陣圖篩選的詳細資訊,請移至下列 MSDN 博客網站: