MSSQLSERVER_8621MSSQLSERVER_8621

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

세부 정보Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 86218621
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name OPTIMIZER_STACK_OVERFLOW_ERROPTIMIZER_STACK_OVERFLOW_ERR
메시지 텍스트Message Text 쿼리 최적화 중 쿼리 프로세서에 스택 공간이 부족합니다.The query processor ran out of stack space during query optimization. 쿼리를 단순하게 만드십시오.Please simplify the query.

설명Explanation

확장된 쿼리의 크기가 오류의 원인일 가능성이 높습니다.The size of the expanded query is the most likely cause of the error. 확장된 쿼리는 보조 인덱스 및 뷰의 업데이트나 트리거와 같은 연계 동작은 물론 각 뷰, 계산 열, Transact-SQLTransact-SQL 함수 및 참조하는 공통 테이블 식 등의 정의로 원래 쿼리를 대체합니다.The expanded query substitutes into the original query the definitions of each of the views, computed columns, Transact-SQLTransact-SQL functions, and common table expressions it references, as well as cascading actions like updating secondary indexes, views, and triggers.

쿼리의 특정 수치가 너무 크기 때문일 가능성이 높습니다. 예를 들어 뷰 정의에서 참조하는 테이블의 수가 지나치게 많거나 스칼라 식이 너무 크기 때문일 수 있습니다.Most likely the query is large in some dimension; for example, the number of tables referenced by view definitions, or a very large scalar expression.

사용자 동작User Action

가장 큰 수치를 기준으로 쿼리를 여러 개로 나누어 단순하게 만듭니다.Simplify the query by breaking the query into multiple queries along the largest dimension. 먼저 불필요한 쿼리 요소를 제거한 후 임시 테이블을 추가하고 쿼리를 두 개로 분할합니다.First remove any query elements that are not really necessary, then try adding a temp table and splitting the query in two. Transact-SQLTransact-SQL 컴파일러가 이들을 다시 결합하므로 단지 쿼리의 일부를 하위 쿼리, 함수 또는 공통 테이블 식으로 옮기는 것만으로는 부족합니다.Merely moving a part of the query to a subquery, function, or common table expression is insufficient because they get recombined by the Transact-SQLTransact-SQL compiler.