文章編號: 288095 - 上次校閱: 2004年1月29日 - 版次: 2.1 BUG:使用大量 IN 子句的查詢會造成堆疊溢位
本文曾發行於 CHT288095
BUG #: 235727 (shiloh_bugs)
BUG #: 58274 (sqlbug_70) 徵狀
在 IN 或 NOT IN 子句內包含大量引數 (上千個) 的查詢可能會產生堆疊溢位的情況。例如,下面的查詢會造成堆疊溢位:
2000-08-10 12:02:37.87 spid51 08/10/00 12:02:37 Stack Overflow Dump not possible - Exception c00000fd E at 0x00587286 2000-08-10 12:02:37.87 spid51 Address=587286 Exception Code = c00000fd 2000-08-10 12:02:37.87 spid51 eax=195922d0 ebx=19592338 ecx=2ad0e938 edx=00000007 2000-08-10 12:02:37.87 spid51 esi=196ce2c8 edi=19592180 eip=00587286 esp=2ac93000 2000-08-10 12:02:37.87 spid51 ebp=2ac93028 efl=00010202 2000-08-10 12:02:37.87 spid51 cs=1b ss=23 ds=23 es=23 fs=38 gs=0 2000-08-10 12:02:37.87 spid51 1: Return Address 00587286 2000-08-10 12:02:37.87 spid51 2: Return Address 0058728B................. 其他可行方案
重寫查詢並使用 #temp 資料表以包含 IN 清單中的值,不要使用 IN 子句。例如,上述查詢可以重寫成這樣:
狀況說明
Microsoft 已確認本篇文件開頭所列產品確實有上述問題。
其他相關資訊
用戶端的連線不會中斷,但可能會出現下面錯誤訊息:
伺服器:訊息 8621,層級 17,狀態 1,行 2。內部查詢處理器錯誤:查詢處理器在查詢最佳化期間已用完堆疊空間。
?考
本文件是根據 Microsoft Knowledgebase 文件編號 Q288095 翻譯的。若要參考原始英文文件內容,請至以下網址:
http://support.microsoft.com/support/kb/articles/Q288/0/95.asp
(http://support.microsoft.com/kb/288095/en-us?ln=en-us&sd=gn&fr=0)
這篇文章中的資訊適用於:
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
回此頁最上方
