sql server查询处理器耗尽了内部资源

时间:2011-10-18 08:08:26

标签: sql-server tsql

查询:

update mytable 
    set mycol = null
    where id in (
        583048,
        583049,
        ... (50000 more)
)

消息: 查询处理器耗尽了内部资源,无法生成查询计划。这是一种罕见的事件,仅适用于引用大量表或分区的极其复杂的查询或查询。请简化查询。如果您认为自己错误地收到了此消息,请与客户支持服务部​​门联系以获取更多信息。

我的查询很简单, 我应该怎么写它才能正常工作?

1 个答案:

答案 0 :(得分:6)

将值列表插入#temp表,然后使用in

正如in this answer所解释的那样,大量IN值会导致它在堆栈中耗尽,因为它们已扩展为OR

See also related connect item