Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

Как закрывать пройденные записи в OracleDataSet   Найти похожие ветки 

 
ali_tash   (2005-11-02 19:23) [0]

Проблема такая:
я выбираю данные из таблицы с большим количеством записей
в OracleDataSet и в цикле их все перебираю.
На очень больших таблицах выдаётся сообщение OutofMemory.даже если свойство QueryAllRecords:= False
то память всё равно кончится но позже.
Можно конечно надстроить ещё один цикл и выбирать по 1000
записей, но хотелось бы узнать можно ли освободить те записи которые я уже прошёл, т.е. паралельно с открытием следующей порции записей закрывать предыдущие ?


 
umbra ©   (2005-11-02 20:01) [1]

нет.


 
Fay ©   (2005-11-02 20:22) [2]

2 ali_tash   (02.11.05 19:23)
Unidirectional ?


 
roottim ©   (2005-11-03 09:13) [3]

Делай на сервере...
declare
...
begin
 cursor c in (select ... from ...)
 loop
 end loop;
end;


а может update достатточен


 
ANB ©   (2005-11-03 09:26) [4]

Я так понимаю это DOA ? Замени TOracleDataSet на TOracleQuery. И будет тебе счастье.


 
Sergey13 ©   (2005-11-03 09:49) [5]

А еще можно попробовать не работать с Ораклом как с Парадоксом.


 
ANB ©   (2005-11-03 09:51) [6]


> Sergey13 ©   (03.11.05 09:49) [5]

Тебе нужно перекачать в MS SQL всю таблицу (точнее запрос из нескольких). При этом провести логическую обработку данных. Легче всего это делать клиентом на делфи.


 
Sergey13 ©   (2005-11-03 10:03) [7]

2 [6] ANB ©   (03.11.05 09:51)
А тут перекачка? Не разглядел. Да и при перекачке необязательно тянуть сразу все.


 
ANB ©   (2005-11-03 10:19) [8]


> Sergey13 ©   (03.11.05 10:03) [7]

Я уже собирался тоже пилить на порции, да опробовал Query и не стал. Кстати, TOracleQuery не является дейтасетом со всеми вытекающими.


 
Курдль ©   (2005-11-03 11:28) [9]


> ali_tash   (02.11.05 19:23)
> я выбираю данные из таблицы с большим количеством записей
> в OracleDataSet и в цикле их все перебираю.
> На очень больших таблицах выдаётся сообщение OutofMemory.

А нельзя ли уточнить цифру "очень больших".
Помницца, у меня была тестовая прога для оценки быстродействия. Там были многомиллионные датасэты и никто ни разу не ругнулся. Не могла ли закрастся в код ошибка с не освобождаемым ресурсом?


 
ANB ©   (2005-11-03 11:32) [10]


> Курдль ©   (03.11.05 11:28) [9]

на милионе записей уже упадет. Это особенность TOracleDataSet - уже зафетченные записи он держит в памяти.


 
Val ©   (2005-11-03 12:24) [11]

>[6] ANB ©   (03.11.05 09:51)
фиг знает. есть еще sqlloader...


 
ANB ©   (2005-11-03 12:34) [12]


> Val ©   (03.11.05 12:24) [11]

лоадер в ораклу все загружает. Связь MS SQL - Oracle - просто ужасная. Что с одной, что с другой стороны. Просто перетянуть данные еще можно, а сложную обработку при этом фиг сделаешь.


 
Val ©   (2005-11-03 12:39) [13]

я имею ввиду загрузку в оракл лоадером и обработку с помощью pl\sql на сервере, как альтернативу перегонов через клиент и обработку на нем.


 
Fay ©   (2005-11-03 13:18) [14]

2 ali_tash   (02.11.05 19:23)
Какая версия DOA?


 
ANB ©   (2005-11-03 13:57) [15]


> Val ©   (03.11.05 12:39) [13]

Так мы из оракла в MS SQL данные перегоняли


 
Val ©   (2005-11-03 14:09) [16]

ааааа :) я не знаю про аналогичную штуковину в MS SQL ничего, но, вероятно, должна быть..то есть делаем то же самое, только наоборот :)


 
ali_tash   (2005-11-03 21:34) [17]

Unidirectional - OK
 Спасибо.


 
Fay ©   (2005-11-03 23:04) [18]

2 ali_tash   (03.11.05 21:34) [17]
Вот и славно! А то я уже подумал, что не понял вопрос.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.014 c
8-1119874845
Amadero
2005-06-27 16:20
2005.12.25
Воспроизведени звука


2-1134132952
sanich
2005-12-09 15:55
2005.12.25
Имборт из FoxPro в Firebird


14-1133331274
syte_ser78
2005-11-30 09:14
2005.12.25
опять по хостингу вопрос.


4-1130256618
Павел
2005-10-25 20:10
2005.12.25
Работа с модемом


2-1133878661
vhs
2005-12-06 17:17
2005.12.25
не рабоатет клавиши delete ?!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский