Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.07.2008, 22:40
gene2109 gene2109 вне форума
Прохожий
 
Регистрация: 30.07.2008
Сообщения: 5
Репутация: 10
По умолчанию производительность БД

1. не подскажете, какой СУБД в Дельфи нужно воспользоваться для
написания приложения для обработки 2 миллионов записей (по ~500 байт каждая, общий объем ~950 Mb).
2. второй вопрос точно такой же, как и №1, только записей 150,000 (x 500 байт = 72 Mb)

Не хотелось бы начинать писать приложение, а потом уткнуться в невозможность реализации.

Заранее спасибо
Ответить с цитированием
  #2  
Старый 31.07.2008, 03:34
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

2 миллиона - в принципе не много, так что любой.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 31.07.2008, 08:53
gene2109 gene2109 вне форума
Прохожий
 
Регистрация: 30.07.2008
Сообщения: 5
Репутация: 10
По умолчанию Уточнения вопроса

Спасибо!

Вообще, вся система подразумевает 10-20 (несколько десятков) "локальных" удаленных пользователей, вносящих свои данные в свои локальные базы (отсюда и цифра в 150000 записей), и только потом все удаленные записи (1 раз в полгода, через XML) будут сливаться в 1 "центральную" базу. Вот и вопрос: достаточно ли будет написать 1 приложение на 1 СУБД, или для "центра" нужно будет писать отдельно (другое и приложение, и СУБД).

P.S. Схему изменить нельзя, "локальные" пользователи - это региональные представительства центрального офиса, автоматизировать их сеть не входит в ближайшие их намерения.
Ответить с цитированием
  #4  
Старый 31.07.2008, 11:37
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Стоит писать одну программу для центра на лучшей из доступных СУБД. ЗА одним разработать положение о передаче данных в(из) базу(ы) центра. Таким образом региональные представители будут иметь широкий выбор для собственной автоматизации (смогут разрабатывать системы для своих нужд либо адаптировать существующие), главное чтобы их системы поддерживали протоколы передачи в центральную БД.
Это довольно гибкий подход. Я видел много примеров навязявания разного рода систем "с верху", в 90% случаев это создает очень много проблем и т.н. "верху" и испольнителю которому эти системы навязаны.
Если интересно, могу расказать об этом поподробнее.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 31.07.2008, 11:52
gene2109 gene2109 вне форума
Прохожий
 
Регистрация: 30.07.2008
Сообщения: 5
Репутация: 10
По умолчанию

Пару уточнений:

На местах (в регионах) нет ни сисадминов, ни людей, хоть сколько-нибудь разбирающихся в настройках БД (это известно точно). Поэтому стоИт задача как можно более упростить процесс установки и эксплуатации ПО. И без "ежегодного слива" никак не обойтись в предложенных обстоятельствах. Обмен данными предполагается производить в виде XML-файлов (10-100 тысяч записей), так что гибкость сохранится.
Поэтому буду пробовать FireBird и функционально мощный инсталлятор.

"Слив" будет происходить редко (1-2 раза в год) и только в один конец (все данные нужны только в центре).

У меня вопрос только в том, потянет ли FB 2 миллиона записей и насколько сильно придется автоматизировать установку/настройку ПО в регионах.
Ответить с цитированием
  #6  
Старый 31.07.2008, 13:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Думаю потянет. В регионах ее (FB) можно и не использовать, там хватит и акцесовской базы. Т.о. в регины достаточно быдет отправить только один exe файл, который при первом запуске эту базу и создаст, а после станет с ней работать.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #7  
Старый 31.07.2008, 18:35
gene2109 gene2109 вне форума
Прохожий
 
Регистрация: 30.07.2008
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
... Т.о. в регины достаточно будет отправить только один exe файл, который при первом запуске эту базу и создаст, а после станет с ней работать.

А что, с FB так же нельзя сделать? Ну, создать базу "на лету"?
Ответить с цитированием
  #8  
Старый 31.07.2008, 22:03
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Ну, почему же нельзя, очень даже можно через скрипт SQL. Но дело в том, что FB устанавливается из дистрибутива и на местах придется это делать тем, кто это не знаком с такими установками.
Мог бы помочь Embeded FB сервер (скачивается оттуда же откуда сам FB), но он подсоединяется к базе в монопольном режиме и более одного пользователя с базой работать не могут. Такой же Embeded есть у Yaffil (все там же на ibase.ru) - этот может работать и с несколькими соединениями с базой FB. Важно, что Embeded и тот и другой не требуют специальной установки.
Насчет, "потянет или нет". В одной таблице базы FB у меня за пять лет накопилось 560 млн записей и ничего, работают как будьто и нет этих млн записей.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #9  
Старый 01.08.2008, 01:16
gene2109 gene2109 вне форума
Прохожий
 
Регистрация: 30.07.2008
Сообщения: 5
Репутация: 10
По умолчанию Embedded

Спасибо огромное!
Это - именно то, что мне и нужно, подразумевалось, что в регионах только 1 подключение и должно быть.
Теперь осталось понять, как с этим работать
Насколько я понял из описания embedded, коннект должен быть другой, чем при использовании полного сервера, а отлаживать приложение нужно именно на полном. Сделать, что ли, опцию коммандной строки, и в зависимости от нее по-разному подключаться? Типа, full=no...
Ответить с цитированием
  #10  
Старый 01.08.2008, 02:05
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Нет. Коннекты к embedded точно такие же как и к полноценному серверу FB, абсолютно ничем не отличаются. За исключением, конечно, что embedded не работает по сети (только localhost). Отладка с embedded тоже ничем не отличается. Я использую и embedded (при работе дома чаще) и полный FB - когда как и не замечал разницы.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025