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

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

Загрузка записей из таблицы БД


Страницы:   1 2

js2 ©   (2009-04-23 15:31:00) 

имеется постоянно корректируемая таблица БД (записей от 2 000 000 до 6 000 000). Задача состоит в том чтобы грузить все записи или в список или в массив. Что посоветуете:

1. Написать наследник Tlist который будет работать с record
2. Грузить в массив типа record

Какие плюсы\минусы этих вариантов?


Медвежонок Пятачок   (2009-04-23 16:08:00) [21]

1. Написать наследник Tlist который будет работать с record
2. Грузить в массив типа record

Какие плюсы\минусы этих вариантов?


Минусы и плюсы в обоих случаях одинаковые

TList = class(TObject)
 private
   FList: PPointerList;
 .......

PPointerList = ^TPointerList;
TPointerList = array[0..MaxListSize - 1] of Pointer;


Anatoly Podgoretsky   (2009-04-23 16:03:00) [22]

> Ega23  (23.04.2009 16:01:14)  [14]

Name при размере 10 символов для строк займет минимум 22 байта, плюс расходы на поддержку списка


Ega23   (2009-04-23 16:01:00) [23]


> но и со списком этих же данных


6 миллионов записей по 1 байту дадут тебе чуть меньше 6 мегабайт памяти.
тупое сочетание id-Name (пусть Name в среднем 10 символов) даст тебе уже 15 байт на запись. Соответственно - 90 метров в опрервтивке (это если всё предельно аккуратно расписать).
Про время доставки этих записей на клиент - я вообще молчу.


stas   (2009-04-23 15:59:00) [24]

js2   (23.04.09 15:47) [9]
что вы понимаете под списками?


Anatoly Podgoretsky   (2009-04-23 15:56:00) [25]

Теперь прикинем расходы на хранение 6 000 000 записей в любом виде.


Сергей М.   (2009-04-23 15:51:00) [26]


> пишу определенный компонент


Не надо ничего писать, все уже написано - TClientDataSet.


Сергей М.   (2009-04-23 15:50:00) [27]


> не моя прихоть


Ну тогда не все ли равно, куда все это "добро" грузить ?


> Какие плюсы\минусы этих вариантов?


С учетом озвученных объемом загружаемых данных оба варианта дурные на всю голову того, у кого возникла эта блажь.


js2   (2009-04-23 15:47:00) [28]

пишу определенный компонент который должен предоставлять возможность работать не только напряму с данными таблицы бд, но и со списком этих же данных


Sergey13   (2009-04-23 15:47:00) [29]

> [6] Ega23 ©   (23.04.09 15:45)
> Зачем тебе на клиенте 2 лимона записей?

Чай с лимонами пить. 8-)

> [5] js2   (23.04.09 15:44)

Курсовой? А на лекции наверное не ходил? Но пиво наверное любишь.


Amoeba   (2009-04-23 15:46:00) [30]


> js2   (23.04.09 15:44) [5]
>
> не моя прихоть. сам в принципе не понимаю, сказали - приходится
> делать

И теперь хочешь найти консультантов для реализации предельно идиотского задания.


Ega23   (2009-04-23 15:45:00) [31]

Зачем тебе на клиенте 2 лимона записей? Что ты с ними будешь делать?


js2   (2009-04-23 15:44:00) [32]

не моя прихоть. сам в принципе не понимаю, сказали - приходится делать


Сергей М.   (2009-04-23 15:43:00) [33]


> Задача состоит в том чтобы грузить все записи или в список
> или в массив


За каким лешим грузить-то ?
Что, без этого никак не обойтись ?


Медвежонок Пятачок   (2009-04-23 15:42:00) [34]

Зачем грузить 6 миллионов записей в рекорды, если все они уже и так загружены в таблицу БД.


js2   (2009-04-23 15:41:00) [35]


> Медвежонок Пятачок ©   (23.04.09 15:38) [1]
> Что посоветуете:удалить все записи


Смешно.... А если по делу?


Медвежонок Пятачок   (2009-04-23 15:38:00) [36]

Что посоветуете:

удалить все записи


Страницы:   1 2

Наверх

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