8623: The query processor ran out of internal resources and could not produce a query plan(查询处理器耗尽了内部资源,无法生成查询计划)
SQL Server含义
对于过于复杂的查询,查询处理器耗尽了内部资源,无法生成执行计划。由于查询过大/过于复杂,无法对其进行优化。
原因
包含非常长的 IN 列表或大量 OR/UNION 子句的查询、JOIN 数量过多、自动生成的巨大查询、参数过多的查询,或表达式树过深。
解决方法
简化查询:将长 IN 列表移入临时表/表值参数,用 UNION ALL 或改写减少 OR 条件,并将复杂查询拆分成多个部分。减少 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 方式扫描)
- 50000用 RAISERROR 引发的自定义错误