Процессор запросов SQL Server исчерпал внутренние ресурсы - PullRequest
5 голосов
/ 18 октября 2011

Запрос:

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

Сообщение. Обработчику запросов не хватило внутренних ресурсов, и он не смог создать план запроса.Это редкое событие и ожидается только для чрезвычайно сложных запросов или запросов, которые ссылаются на очень большое количество таблиц или разделов.Пожалуйста, упростите запрос.Если вы считаете, что получили это сообщение по ошибке, обратитесь в службу поддержки клиентов для получения дополнительной информации.

Мой запрос очень прост, как мне его написать, чтобы он работал нормально?

1 Ответ

6 голосов
/ 18 октября 2011

Вставьте список значений в таблицу #temp, затем используйте in для этого.

Как объяснено в этом ответе большое количество IN значений может вызвать егочтобы выйти из стека, когда они расширяются до OR

См. также связанный элемент подключения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...