다음을 통해 공유


MSSQLSERVER_8632

적용 대상:SQL Server

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 8632
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 QUERY_EXPRESSION_TOO_COMPLEX
메시지 텍스트 내부 오류: 식 서비스 제한에 도달했습니다. 쿼리에서 잠재적으로 복잡한 식을 찾고 단순화해 보세요.

설명

SQL Server에서 단일 식에 많은 수의 식별자와 상수를 포함하는 쿼리를 실행할 때 오류 8632가 발생합니다. 다음과 같은 오류 메시지가 사용자에게 보고됩니다.

서버: Msg 8632, 수준 17, 상태 2, 줄 1
내부 오류: 식 서비스 제한에 도달했습니다. 쿼리에서 잠재적으로 복잡한 식을 찾고 단순화해 보세요.

원인

이 문제는 SQL Server가 쿼리의 단일 식에 포함될 수 있는 식별자 및 상수의 수를 제한하기 때문에 발생합니다. 이 제한은 65,535입니다. 예를 들어 다음 쿼리에는 하나의 식만 있습니다.

select a, b + c, d + e

이 식은 5개의 열을 모두 검색하고 더하기 연산자를 계산한 다음 프로젝션된 결과 세 개를 클라이언트로 보냅니다.

SQL Server에서 참조된 모든 식별자 및 상수를 확장한 후 식별자 및 상수 수에 대한 테스트가 수행됩니다. 예를 들어 다음 항목을 확장할 수 있습니다.

  • 선택 목록의 별표(*)
  • 보기
  • 계산된 열 정의

확장 후 개수가 제한을 초과하는 경우 쿼리가 실행되지 않습니다.

사용자 작업

이 문제를 해결하려면 쿼리를 다시 작성합니다. 쿼리에서 가장 큰 식에서 더 적은 식별자 및 상수 참조 쿼리의 각 식에 있는 식별자 및 상수 수가 제한을 초과하지 않는지 확인해야 합니다. 이렇게 하려면 쿼리를 둘 이상의 단일 쿼리로 분할해야 할 수 있습니다. 그런 다음 임시 중간 결과를 만듭니다.