Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как уменьшить объем используемой оперативки? [D6, IB5.x, Oracle]


sergrrey ©   (2002-05-02 12:34:00) 

Нужно вставить в базу большое число строк!
Хочу для меньшего использования оперативки через определенные промежутки времени коммитоваться, потом освобождать всю занятую память, потом продолжать вставку, начиная с последней строки вставлять в базу дальше строки. Как это сделать?
Делаю IBQuery.active:=false, но память (оперативка не освобождаеться!) Попробую переосоздать компонент.
Но это тоже не дает результат!
Я делаю так:
UMain.FMain.IBQ.Free;
UMain.FMain.IBQ:=TIBQuery.Create(self);
Память освобождается!
Но после создания IBQ вся старая инфа, которая освободилась после Free, опять заного заполняет оперативку (я узнал об этом по размеру)!


grrey   (2002-05-08 15:20:00) [1]

Спасибо!


Sergey13   (2002-05-08 10:10:00) [2]

2grrey (07.05.02 11:45)
>Для лодера невозможно файл подготовить! Его же открыть надо! А >при открытии он весь в операционку аписываеться! И тут вылетает >сообение, что не хватает памяти!
Можно готовить несколько файлов фиксированой длины и потом
1. "Склеить" их командой COPY и загрузить лодером
2. Грузить лодером из нескольких файлов в одном сеансе. При этом наверное потребуется динамически пересоздавать управляющий файл загрузки (если количество файлов заранее не известно).
3. Запускать несколько сеансов загрузки (из одного файла) последовательно.


dimis   (2002-05-08 08:37:00) [3]

я столкнулся с такой проблемой
стандартные Query(BDE,Oracle) память не отдают(в чем проблема выяснить не удалось)
Проблема решилась, когда перешел на ODAC(прямой доступ к Oracle)у них с этим все в порядке,даже пересоздавать компонент не надо
так что видимо это глюк компонентов


grrey   (2002-05-07 13:54:00) [4]

А если мне завтра 10 гиг придется перегонять? Опять виртуальную память увеличивать? Не это не метод! Oracle, по моему, достаточно гибкая система, чтоб не позволять делать такие манипуляции! Неужели такого нет?


Johnmen   (2002-05-07 11:55:00) [5]

Так и увеличь размер виртуальной памяти.
Или я что-то не догоняю ?


grrey   (2002-05-07 11:45:00) [6]

Пытался! Все делать пытался! И Лодером, и винда сама у меня объем памяти меняла, но только не помогает ничего!
Для лодера невозможно файл подготовить! Его же открыть надо! А при открытии он весь в операционку аписываеться! И тут вылетает сообение, что не хватает памяти!
Я думаю, может Oracle начинает все в оперативку сначала записывать, а потом на диск будет. Но как мне кажеться, на диск он записывает после превышения определенного придела памяти! Но у меня этот придел меняется скачком! Т.е. одним коммитом! он не успевает переписаться на диск!! Он бы переписал, только до этого момента оперативка заканчиваеться! ( Точнее виртуальная память)
Может кто скажет я вообще в ту сторону мыслю?


ivv   (2002-05-07 09:38:00) [7]

инсерти лодером, либо из поцедуры на сервере.


Fay   (2002-05-07 06:07:00) [8]

Объём используемой памяти не может превышать полный объём памяти.
Уменьшай память на компе !!! 8)


Desdechado   (2002-05-06 15:50:00) [9]

не мучайся. ОС сама решит, что и когда ей освобождать


Наверх

Титульная страница Поиск, карта сайта Написать письмо