KB982376 - 修正:在 SQL Server 2005、SQL Server 2008 或 SQL Server 2008 R2 中執行包含大型 IN 子句的查詢時,會發生非良排程器錯誤或錯誤 8623

套用到
Microsoft SQL Server 2005 SQL Server 2008 SQL Server 2008 R2

Microsoft 會以一個可下載的檔案形式發佈 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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。

症狀

在 Microsoft SQL Server 2005、Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中,您有一個查詢包含大型 IN 子句。 例如,IN 子句包含數千個值。 當您執行此查詢時,可能會發生不屈服排程器錯誤。 此外,會在 SQL Server 2005、SQL Server 2008 或 SQL Server 2008 R2 記錄資料夾中產生迷你傾印檔案。 有時您可能也會在 SQL Server 錯誤記錄檔中看到下列錯誤訊息:

注意

錯誤:8623,嚴重性:16,狀態:1。

查詢處理器已用盡內部資源,無法產生查詢計劃。 這是罕見的事件,只有在極其複雜的查詢或參考大量資料表或磁碟分割的查詢時才會發生。 請簡化查詢。 如果您認為您誤收到此訊息,請連絡客戶支援服務以取得詳細資訊。

注意:如果錯誤 8623 與非讓路排程器錯誤同時發生,則查詢執行會失敗。

原因

發生此問題的原因是 SQL Server 程式碼庫中的問題。 在執行包含大型 IN 子句的查詢期間,SQL Server 程式碼基底不會適當地產生排程器。 此行為會導致在相同排程器上執行的其他背景工作執行緒的 CPU 飢餓,並導致非屈服排程器錯誤。

解決方式

累積更新資訊

SQL Server 2005

此問題的修正程式最初在累積更新 10 中發行。 如需有關如何取得此 SQL Server 2005 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

983329 累積更新套件 10 for SQL Server 2005 Service Pack 3 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前的 2005 SQL Server修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

960598 發行 SQL Server 2005 Service Pack 3 之後所發行的 SQL Server 2005 組建

SQL Server 2008 Service Pack 1

此問題的修正程式最初在 SQL Server 2008 Service Pack 1 的累積更新 9 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2083921 SQL Server 2008 Service Pack 1 的累積更新 9 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2008 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

970365 發行 SQL Server 2008 Service Pack 1 之後所發行的 SQL Server 2008 組建Microsoft SQL Server會為特定 SQL Server Service Pack 建立 Hotfix。 您必須將 SQL Server 2008 Service Pack 1 Hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 Service Pack 2

此問題的修正程式最初在 SQL Server 2008 Service Pack 2 的累積更新 1 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2289254 SQL Server 2008 Service Pack 2 的累積更新 1 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2008 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 發行 SQL Server 2008 Service Pack 2 之後所發行的 SQL Server 2008 組建

SQL Server 2008 R2

此問題的修正程式最初在累積更新 3 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2261464 SQL Server 2008 R2 的累積更新套件 3 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在先前的 SQL Server 2008 R2 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

Hotfix 資訊

Microsoft 提供支援的 Hotfix。 不過,此 Hotfix 僅用來修正本文所述的問題。 僅將此 Hotfix 套用至發生此特定問題的系統。

如果 Hotfix 可供下載,本知識庫文章頂端有「可供 Hotfix 下載」章節。 如果未顯示此區段,請提交要求給 Microsoft 客戶服務與支援以取得 Hotfix。

注意: 如果發生其他問題或需要進行任何疑難排解,您可能需要建立另外一個服務要求。 一般的支援費用將適用於不符合此特定 Hotfix 資格的其他支援問題和問題。 如需 Microsoft 客戶服務及支援服務的完整電話號碼清單,或建立個別的服務要求,請造訪下列 Microsoft 網站:

/contactus/?ws=support 注意:「Hotfix 下載可用」表單顯示 Hotfix 可用的語言。 如果您找不到您的語言,是因為該語言沒有 Hotfix。

注意 安裝此 Hotfix 之後,如果 IN 子句夠大,錯誤 8623 仍會因為資源耗盡而發生。 如果安裝此 Hotfix 之後,錯誤 8623 仍然發生,請使用下列其中一種方法:

方法 1

減少 IN 子句中值的數目。

方法 2

將IN子句中的值輸入到暫存資料表或資料表變數中,然後查詢連接原始資料表和暫存資料表 (或資料表變數) 的結果集。

先決條件

您必須安裝 SQL Server 2005 Service Pack 3 (SP3) 、SQL Server 2008 或 SQL Server 2008 R2,才能套用此 Hotfix。

重新啟動需求

如果套用此 Hotfix 時其中一個 SQL Server 服務正在執行,則必須在套用此 Hotfix 之後重新啟動電腦。 如果您不想重新啟動電腦,請先停止所有的 SQL Server 服務,然後再套用此 Hotfix。

Hotfix 取代資訊

此 Hotfix 不會取代任何其他 Hotfix。

檔案詳細資訊

此 Hotfix 的英文版具有下表列出 (或更新檔案屬性) 的檔案屬性。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換成當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。

x86 版本的 SQL Server 2005

檔案名稱 檔案版本 檔案大小 日期 時間 雜湊
Batchparser90.dll 2005.90.4035.0 125,280 24-Nov-2008 16:14
Dbghelp.dll 6.6.7.5 1,037,152 24-Nov-2008 14:51 MD5: 288A3127F85C9416E9A3FD07EDAEDCBD
SHA1: FC10D9E27E5C6987B5CB2C5166FBF83252AC41FC
Dumpdatastore.dll 2005.90.4035.0 1,157,472 24-Nov-2008 14:56 MD5: 9B010B4FF41DA4AFAFB94C8456D64059
SHA1: 58783B12982DFACF3D9AF4A1CAFE58A95771CE3D
Msvcp80.dll 8.0.50727.42 548,864 2005 年 10 月 13 日 16:26 MD5: 2BC650257FB0867ABD54FD460EC2BAFC
SHA1: EC063526AA14BCADEEFFA6D859B39A80680015B7
Msvcr80.dll 8.0.50727.42 626,688 2005 年 10 月 13 日 16:26 MD5: 16D7DDF3B659F7CF1CB9F4DCFF4219F0
SHA1: A61454131940799F01C26943F1594EE6E7409D11
Sqlcmd.exe 2005.90.4035.0 141,664 24-Nov-2008 15:31 MD5: 2E1B8DF1802612BDA20378B612D46155
SHA1: B45271F4CA358805D3515ADB9DA8D302FA40D8D0
Sqlcmd.rll 2005.90.4035.0 24,928 24-Nov-2008 15:14 不適用
Sqldiscoveryapi.dll 2005.90.4035.0 530,784 24-Nov-2008 15:31 MD5: 8AC29B7DF7AA97CF12E15BF4D026A96D
SHA1: 7DF7C8A0AFFC7EEE19CCA8C321494395DA06CD5C
Sqlsetupvista.dll 2005.90.4035.0 227,680 24-Nov-2008 15:31 MD5: FF9AF51AD873841628C0F5554BD7EB8E
SHA1: B538EFC458163E6D04056B1F191B13EF891BA50E
Finalsql2005information.rtf 不適用 844 2010 年 1 月 14 日 14:37 不適用
Sqlhotfix.chm 不適用 116,106 2010 年 1 月 14 日 14:37 不適用
Sqlse.rll 1.4.1581.0 60,264 2010 年 4 月 7 日 16:40 不適用
Sqlrun_as.msp 不適用 27,555,328 2010 年 4 月 8 日 01:26 不適用
Sqlrun_dts.msp 不適用 14,836,736 2010 年 4 月 8 日 01:28 不適用
Sqlrun_ns.msp 不適用 3,965,952 2010 年 4 月 8 日 01:28 不適用
Sqlrun_rs.msp 不適用 16,354,304 2010 年 4 月 8 日 01:31 不適用
Sqlrun_sql.msp 不適用 39,590,400 2010 年 4 月 8 日 01:36 不適用
Sqlrun_tools.msp 不適用 48,827,904 2010 年 4 月 8 日 01:46 不適用

基於 x64 型版本的 SQL Server 2005

檔案名稱 檔案版本 檔案大小 日期 時間 雜湊
Batchparser90.dll 2005.90.4035.0 179,552 25-Nov-2008 04:38
Dbghelp.dll 6.6.7.5 1,326,944 25-Nov-2008 04:38 MD5: 1F5B11622850EBFEA889A8B6F1132F57
SHA1: 68B256D48B40C58FD67DADBC815F443C826BE073
Dumpdatastore.dll 2005.90.4035.0 1,566,560 25-Nov-2008 04:39 MD5: D3D83B642E6D906918A4527B04E82CA1
SHA1: FADA34561343B9A1B2313335690B2B881E237678
Msvcp80.dll 8.0.50727.42 1,097,728 2005 年 10 月 14 日 04:46 MD5: 5AE0F01F02A03558DA0CBD249E4DF263
SHA1: 64735AB4635B587647A11A599E39D2233D9DE6F0
Msvcr80.dll 8.0.50727.42 822,784 2005 年 10 月 14 日 04:46 MD5: 465CEBD7DA2CEABA5E552FC9118A1415
SHA1: 995060CABE3DDF199B400AD0D80FF5660626793C
Sqlcmd.exe 2005.90.4035.0 336,736 25-Nov-2008 04:45 MD5: 105FAD078031DF182E32C53D5994C457
SHA1: D8953F00436F38880B4B587391BD0D2309E5297E
Sqlcmd.rll 2005.90.4035.0 25,440 25-Nov-2008 04:40 不適用
Sqldiscoveryapi.dll 2005.90.4035.0 750,432 25-Nov-2008 04:45 MD5: 0826CE00BFB5DA7374E4D0E146942471
SHA1: 668553462BD285FBDC241A23E4E259FEF1235DEF
Sqlsetupvista.dll 2005.90.4035.0 316,256 25-Nov-2008 04:45 MD5: 41BBA84E4D204046EF0059E573B98988
SHA1: 557F186F46D09AE59C655B52675D604593E8E611
Finalsql2005information.rtf 不適用 844 2010 年 1 月 14 日 14:37 不適用
Sqlhotfix.chm 不適用 116,106 2010 年 1 月 14 日 14:37 不適用
Sqlse.rll 1.4.1581.0 60,776 2010 年 4 月 7 日 1:17:33 AM 不適用
Sqlrun_as.msp 不適用 46,118,400 2010 年 4 月 8 日 01:15 不適用
Sqlrun_dts.msp 不適用 22,150,656 2010 年 4 月 8 日 1,801 不適用
Sqlrun_ns.msp 不適用 5,689,344 2010 年 4 月 8 日 19:01 不適用
Sqlrun_rs.msp 不適用 21,256,192 2010 年 4 月 8 日 2,201 不適用
Sqlrun_sql.msp 不適用 45,197,312 2010 年 4 月 8 日 01:28 不適用
Sqlrun_tools.msp 不適用 65,248,768 2010 年 4 月 8 日 01:38 不適用

IA-64 版本的 SQL Server 2005

檔案名稱 檔案版本 檔案大小 日期 時間 雜湊
Batchparser90.dll 2005.90.4035.0 293,728 24-Nov-2008 19:52
Dbghelp.dll 6.6.7.5 3,631,456 24-Nov-2008 19:52 MD5: BB797393886A04ED2847AC966A23439D
SHA1: B43F7926C0FD268F4496A116B9176753601B5EAD
Dumpdatastore.dll 2005.90.4035.0 4,322,144 24-Nov-2008 19:47 MD5: 5677EC5C5DA9AB7C71580996E598433E
SHA1: A98591A4D220C293A6C8E1D2B17E3C4847545721
Msvcp80.dll 8.0.50727.42 1,385,472 2005 年 10 月 14 日 04:35 MD5: 7F0715E63E08692F39C017A6A2D61E56
SHA1: 24B674285AC11D0496529EBC9E7FADC7B7955AC3
Msvcr80.dll 8.0.50727.42 1,484,800 2005 年 10 月 14 日 04:35 MD5: 88B3570029DEC94B06199DB8E7EB66D9
SHA1: FC8EE955B19FCE0F4F1C8F17F9AD97ACB4E129A4
Sqlcmd.exe 2005.90.4035.0 530,784 24-Nov-2008 20:03 MD5: 512C6ECF02979B75B5C52D5F3021C379
SHA1: 03A8D2BE83EFF1ACE5B002D5E390670B1EF14D83
Sqlcmd.rll 2005.90.4035.0 24,416 24-Nov-2008 19:58 不適用
Sqldiscoveryapi.dll 2005.90.4035.0 1,939,808 24-Nov-2008 2,004 MD5: 63834474BB3D9B15958A40B0FF102F93
SHA1: F00BE0A455B134CF17FF6C9FBCF19D93BC6F403B
Sqlsetupvista.dll 2005.90.4035.0 702,816 24-Nov-2008 2,004 MD5: 593F2B3BD7C92AEF28A751D5C4421C84
SHA1: 58D55D1822E697D701F9B45A50A6A5B67B998E77
Finalsql2005information.rtf 不適用 844 2010 年 1 月 14 日 14:37 不適用
Sqlhotfix.chm 不適用 116,106 2010 年 1 月 14 日 14:37 不適用
Sqlse.rll 1.4.1581.0 59,240 2010 年 4 月 7 日 2,004 不適用
Sqlrun_as.msp 不適用 67,258,368 2010 年 4 月 8 日 00:57 不適用
Sqlrun_dts.msp 不適用 35,875,328 2010 年 4 月 8 日 01:01 不適用
Sqlrun_ns.msp 不適用 12,269,056 2010 年 4 月 8 日 01:02 不適用
Sqlrun_rs.msp 不適用 31,128,576 2010 年 4 月 8 日 01:06 不適用
Sqlrun_sql.msp 不適用 69,868,032 2010 年 4 月 8 日 01:13 不適用
Sqlrun_tools.msp 不適用 65,883,648 2010 年 4 月 8 日 23:01 不適用

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

如需有關軟體更新術語的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

824684 描述Microsoft軟體更新所使用的標準術語說明