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