Re: Ошибка 43 - There is not enough memory to complete this operation | |
---|---|
sphinx Автор Сообщений: 30760 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Мы наблюдали как-то такой эффект - программа вылетает с невнятной ошибкой, а под отладчиком всё прекрасно работает. Разница только во временном исполнении команд, значит, если поставить небольшую задержку всё будет работать.
Где поставить? Да хоть после последней команды цикла. Что даст? Просто исключим ещё одно предположение. ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Ошибка 43 - There is not enough memory to complete this operation | |
---|---|
Владимир Максимов Сообщений: 14063 Откуда: Москва Дата регистрации: 02.09.2000 |
Это плохо само по себе. Такие процедуры надо обязательно разбивать на этапы с сохранением промежуточных результатов на диске. А так отработает 23 часа и вылетит. Снова с начала запускать? Тут беда в том, что при такой длительной непрерывной работе может влезть какое-то постороннее приложение. Ну, там Windows создание резервной копии запустит или Касперский сканирование на вирусы по расписанию запустит. Мало ли...
Вопрос не в размере одной таблицы, а в размере объединенной таблицы. Т.е. если в одном запросе в качестве источника данных указаны такие большие таблицы, то и можешь получить переполнение памяти как результат промежуточного объединения данных. Даже несмотря на то, что итоговая выборка будет небольшой. Но ведь где-то в середине процесса будет это самое объединение которое будет больше 2 ГБ
Да. Надо всегда ставить NOFILTER. К вопросу оптимизации это не имеет никакого отношения. Это способ сохранения результата выборки Понятно, что у полученного курсора не будет индекса, но его вполне можно создать. А вот что будет при объединении с таблицей с наложенным фильтром - непонятно. Результат не предсказуемый. Вполне может быть и переполнение памяти. ![]() |
Re: Ошибка 43 - There is not enough memory to complete this operation | |
---|---|
sphinx Автор Сообщений: 30760 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Цитата: Да, просто как-то пропустил. Однозначно, надо разбивать. ![]() ------------------ "Veni, vidi, vici!"(с) ![]() |
© 2000-2023 Fox Club  |