文章編號: 2222998 - 上次校閱: 2010年10月18日 - 版次: 4.0

FIX: 一個不正確的基數估計值會傳回當您在 SQL Server 2005,SQL Server 2008 或 SQL Server 2008 R2 中執行查詢

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
Microsoft 將分配 Microsoft SQL Server 2005,Microsoft [SQL] Server 2008 或 Microsoft SQL Server 2008 R2 修正為一個可下載的檔案。 此修正程式是累積的因為每個新版本都包含所有 Hotfix 和先前的 Microsoft SQL Server 2005,Microsoft [SQL] Server 2008 或 Microsoft SQL Server 2008 R2 隨附所有安全性修正程式都修正版本。

在此頁中

全部展開 | 全部摺疊

徵狀

您在 Microsoft SQL Server 2005,Microsoft [SQL] Server 2008 或 Microsoft SQL Server 2008 R2 中執行查詢時,會傳回不正確的基數估計值。 就例如您在執行查詢時實際的資料列數目是大於 2000年。 但是,估計的資料列數目是 1。 當下列情況成立時,就會發生這個問題:
  • 查詢中包含一個以上的 JOIN 子句。
  • 在 WHERE 子句中有多個資料行。
  • SQL Server 最佳化器使用反半聯結運算子加入資料。

解決方案

累積更新資訊

SQL Server 2005 Service Pack 3

此問題的修正程式第一次發行中的 SQL Server 2005 的 Service Pack 3 的累積更新 11。 關於這個累積更新套件的詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2258854? (http://support.microsoft.com/kb/2258854/LN/ ) SQL Server 2005 的 Service Pack 3 的累積更新套件 11
附註因為組建是累積,每一個新版的修正程式會包含所有 Hotfix 和先前的 SQL Server 2005 隨附所有安全性修正程式都修正版本。 Microsoft 建議您考慮套用最新的修正版本包含此 Hotfix。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件::
960598? (http://support.microsoft.com/kb/960598/LN/ ) SQL Server 2005 會建置 SQL Server 2005 的 Service Pack 3 發行之後所發行的
Microsoft SQL Server 2005 的 Hotfix 會建立特定的 SQL Server Service Pack。 您必須套用至 SQL Server 2005 的 Service Pack 3 的安裝的 SQL Server 2005 的 Service Pack 3 Hotfix。 預設狀況下,SQL Server 服務套件中提供的任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2008 Service Pack 1

累積更新 9 的 SQL Server 2008 的 Service Pack 1 於第一次發行此問題的修正程式。 關於這個累積更新套件的詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2083921? (http://support.microsoft.com/kb/2083921/LN/ ) SQL Server 2008 的 Service Pack 1 的累積更新 9
附註因為組建是累積,每一個新版的修正程式會包含所有 Hotfix 和先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。 Microsoft 建議您考慮套用最新的修正版本包含此 Hotfix。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件::
970365? (http://support.microsoft.com/kb/970365/LN/ ) SQL Server 2008 建置 SQL Server 2008 的 Service Pack 1 發行之後所發行的
Microsoft SQL Server 2008 的 Hotfix 會建立特定的 SQL Server Service Pack。 您必須將 SQL Server 2008 的 Service Pack 1 Hotfix 套用至 SQL Server 2008 的 Service Pack 1 的安裝。 預設狀況下,SQL Server 服務套件中提供的任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2008 R2

累積更新 4 於第一次發行此問題的修正程式。 如需有關如何取得這個累積更新套件的 SQL Server 2008 R2 按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2345451? (http://support.microsoft.com/kb/2345451/ ) SQL Server 2008 R2 的累積性的更新套件 4
附註因為組建是累積,每一個新版的修正程式會包含所有 Hotfix 和先前的 SQL Server 2008 R2 隨附所有安全性修正程式都修正版本。 我們建議您考慮套用最新的修正版本包含此 Hotfix。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件::
981356? (http://support.microsoft.com/kb/981356/ ) SQL Server 2008 R2 建置 SQL Server 2008 R2 發行之後所發行的

狀況說明

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

其他相關資訊

您可以藉由查看檢視查詢的估計的資料列,EstimateRows統計資料的設定檔輸出或 SHOWPLAN_ALL 輸出的資料行。

關於半反聯結運算子的詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
右反半聯結顯示計劃操作員 (http://msdn.microsoft.com/en-us/library/ms177472(sql.100).aspx)
左反半聯結顯示計劃操作員 (http://msdn.microsoft.com/en-us/library/ms191171(sql.100).aspx)
SQL Server 的累加式的服務模型相關資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
935897? (http://support.microsoft.com/kb/935897/ ) 累加式的服務模型是可用來傳遞回報問題的 Hotfix SQL Server 小組
如需有關 SQL Server 更新命名的結構描述按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
822499? (http://support.microsoft.com/kb/822499/ ) Microsoft SQL Server 軟體更新套件的新命名的結構描述

有關軟體更新術語的詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
824684? (http://support.microsoft.com/kb/824684/ ) 用來描述 Microsoft 軟體更新標準術語的描述

這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Enterprise
關鍵字:?
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbtshoot kbmt KB2222998 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:2222998? (http://support.microsoft.com/kb/2222998/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。