8623: The query processor ran out of internal resources and could not produce a query plan (쿼리 프로세서 내부 리소스 부족으로 쿼리 계획 생성 불가)
SQL Server의미
쿼리가 지나치게 복잡하여 쿼리 프로세서가 내부 리소스를 모두 소진했고 실행 계획을 생성하지 못했다. 쿼리가 너무 크거나 복잡하여 최적화할 수 없다.
원인
매우 긴 IN 목록이나 다수의 OR/UNION 절이 있는 쿼리, 과도한 JOIN 수, 자동 생성된 거대한 쿼리, 매개변수가 너무 많은 쿼리, 또는 지나치게 깊은 식 트리.
해결 방법
쿼리를 단순화한다. 긴 IN 목록은 임시 테이블/테이블 반환 매개변수로 옮기고, OR 조건은 UNION ALL이나 재작성으로 줄이며, 복잡한 쿼리는 부분으로 나눈다. JOIN 수를 줄인다. 자동 생성 쿼리는 배치로 나눈다. 필요 시 인덱스와 쿼리 설계를 검토한다.
같은 데이터베이스의 다른 항목
- 207Invalid column name
- 156Incorrect syntax near the keyword
- 2812Could not find stored procedure (저장 프로시저를 찾을 수 없음)
- 4104The multi-part identifier could not be bound (다중 부분 식별자를 바인딩할 수 없음)
- 2714There is already an object named in the database (데이터베이스에 같은 이름의 개체가 이미 있음)
- 601Could not continue scan with NOLOCK due to data movement (데이터 이동으로 NOLOCK 스캔을 계속할 수 없음)
- 50000Custom error raised with RAISERROR (RAISERROR로 발생시킨 사용자 정의 오류)