您目前已離線,請等候您的網際網路重新連線

FIX: A 查詢可能要花費更多時間來完成 SQL Server 2005 中,如果查詢所使用的內部聯結來聯結使用 DISTINCT 關鍵字的衍生的資料表

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:949854
Bug #: 50002496 (SQL Hotfix)
Microsoft 為一個可下載檔案散佈 Microsoft SQL Server 2005 的修正程式。因為修正程式是累積,每個新版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。
徵狀
考慮下列案例。您可以使用內部聯結的查詢。其中一個包含在內部聯結的資料表是衍生的資料表。衍生的資料表使用 DISTINCT 關鍵字。執行查詢。在這種情況下查詢可能要花費更多時間在 Microsoft SQL Server 2005 中比在 SQL Server 2000 中完成。

附註衍生的資料表是查詢的一個 SELECT 陳述式之後 FROM 子句。
發生的原因
查詢最佳化器會產生錯誤的執行計劃,就會發生這個問題。在 SQL Server 2005 中查詢最佳化器選擇執行計劃,其中包含 Top(TOP EXPRESSION:((1))) operator for the DISTINCT keyword.不過,在 SQL Server 2000 中相同的查詢執行計劃使用 雜湊比對 彙總運算子對於 DISTINCT 關鍵字。

當查詢最佳化器會最佳化查詢的 SQL Server 2005 時,查詢最佳化器會使用 Top(TOP EXPRESSION:((1))) operator for the DISTINCT keyword to obtain the first row quickly.不過,如果基數估計每項操作的資料列的 Top(TOP EXPRESSION:((1))) operator is larger than the actual cardinality, SQL Server 2005 will take a long time to obtain the first row.因此,查詢會花很長的時間才完成。
解決方案
這個問題的修正程式先於發行累計更新 7。如需有關如何取得此累積更新套件的 SQL Server 2005 Service Pack 2 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
949095SQL Server 2005 Service Pack 2 的累積更新套件 7
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
Microsoft SQL Server 2005 的 Hotfix 會建立特定的 SQL Server Service Pack。您必須將 SQL Server 2005 Service Pack 2 Hotfix 套用至的 SQL Server 2005 Service Pack 2 安裝。預設狀況下,在 SQL Server Service Pack 中提供任何 Hotfix 包含在下一個 SQL Server Service Pack。

如何啟用此 Hotfix

為 SQL Server 2005 Service Pack 2 安裝累積更新 7 之後您必須開啟追蹤旗標 4125。若要執行此動作執行 SQL Server 管理 Studio 中的 [以下的陳述式]。
DBCC TRACEON(4125,-1)
狀況說明
Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。
其他相關資訊
如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
949095SQL Server 2005 Service Pack 2 的累積更新套件 7

SQL Server 2005 分析服務的重要資訊

已知的問題存在於累計更新 7 的 SQL Server 2005 分析服務。考慮下列案例。您為 SQL Server 2005 SP2 安裝累積更新 7。在 SQL Server 分析工具中啟動追蹤或停止追蹤。然後,您執行查詢。查詢執行時間超過 ForceCommitTimeout 伺服器設定值。在這種情況下會取消所有在伺服器執行的查詢。如果要解決這個問題,不會執行 MDX 查詢才能啟動追蹤或停止追蹤。
参考
如更多有關清單的組建,都可以使用 SQL Server Service Pack 2 之後,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
如更多有關累加式的維修模型為 SQL Server,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
935897累加式的維修模型是可以從 SQL Server 小組來傳遞回報問題的 Hotfix
如需有關如何取得 SQL Server 2005 Service Pack 2 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
913089如何取得最新的 Service Pack,SQL Server 2005 的
如需有關新功能與 SQL Server 2005 Service Pack 2 的改進的詳細資訊,請造訪下列 Microsoft 網站:如 SQL Server 更新命名的結構描述的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
822499Microsoft SQL Server 軟體更新套件的新命名結構描述
如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明
不同的執行計劃

警告:本文為自動翻譯

內容

文章識別碼:949854 - 最後檢閱時間:05/06/2008 17:05:52 - 修訂: 2.1

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB949854 KbMtzh
意見反應
ute = "76500"; var Ctrl = ""; document.write("