많은 수의 인수가 있는 IN 또는 NOT IN 절을 SQL Server 에서 내부에 포함된 쿼리를 실행할 때 스택 오버플로가 발생합니다.

기술 자료 번역 기술 자료 번역
기술 자료: 288095 - 이 문서가 적용되는 제품 보기.
# BUG: 235727 (shiloh_bugs)
# BUG: 58274 (sqlbug_70)
모두 확대 | 모두 축소

현상

많은 수의 인수 (수천) 안에 있는 IN 또는 NOT IN 절을 포함하는 쿼리를 스택 오버플로가 발생할 수 있습니다. 예를 들어, 스택 오버플로 다음 쿼리 결과를:
SELECT max(au_id) FROM authors WHERE au_id IN(1,2,5,......,11571)  
-- Query contains over 11570 arguments.
				
스택 오버플로가 발생하면, SQL Server 오류 로그에 다음과 유사한 정보가 들어:
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.................
				
경우에 따라서는 실제로 종료를 스택 오버플로 결과로 SQL Server 수 있습니다.

해결 과정

쿼리를 다시 작성하여 및 #temp 테이블 IN 절 대신 IN 목록의 값을 포함할 수 있습니다. 예를 들어, 앞의 쿼리는 다음과 같이 re-written 수 있습니다:
CREATE TABLE #IN_values (au_id char(4))
INSERT INTO #IN_values select au_id FROM Table_with_values_123456789...

SELECT max(au_id)
FROM authors as A
JOIN #IN_values as I ON (A.au_id = I.au_id)
				

현재 상태

Microsoft 문제는 이 문서의 시작 부분에 나열한 제품에서 문제를 확인했습니다.

추가 정보

클라이언트 연결이 끊어진 있지만 이 오류 메시지가 발생할 수 있습니다.
서버: Msg 8621, 수준 17, 상태 1, 줄 2 내부 쿼리 프로세서 오류: 쿼리 프로세서에서 쿼리 최적화 과정에서 스택 공간이 부족합니다.

속성

기술 자료: 288095 - 마지막 검토: 2007년 11월 2일 금요일 - 수정: 4.4
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
키워드:?
kbmt kbprb kbpending KB288095 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com