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

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

BDE альтернативы. Кто быстрее? [D6]


Страницы:   1 2 3

Александр М ©   (2004-03-20 14:47:00) 

Решил произвести фундаментальные исследования на эту тему. В результате чего появилась моя первая статья. За речевые обороты сильно не бить, а в остальном, думаю, многим будет интересно почитать:
http://www.degisy.com/bdealternative.php
Комментарии принимаются с удовольствием!


Курдль   (2004-03-24 14:14:00) [21]

Ок! Все правильно! Такие исследования действительно нужны!
Я все к тому, что для меня не быстродействие главное, понимаете?
Пока что я не видел более простого, чем упомянутый мной выше Yaffil. Если глубокоуважаемые исследователи порекомендуют столь же простой, коммуникабельный и главное надежный"движок", то я с удовольствием им воспользуюсь.
Не могу порекомендовать свои разработки, т.к. ничего не делаю полезного для программистов. Но могу привести пример программ лидера одного из направлений коммерческих программ. Тип близок к "бухгалтерским многопользовательским программам".
СУБД "Clarion" (это в XXI веке!). В комплект поставки входит утилита "восстановитель БД" - это когда база рушится полностью, существует возможность восстановить структуру таблиц, но не содержание. (Вам бы понравилось, если с автомобилем в комплекте шел какой-нить "восстановитель рулевого управления" навроде кувалды?:)
Модель БД включает в себя сотню таблиц, но лишь десяток реляционных связей (!). Схема "Многие-ко-многим" реализована за счет стократного повторения группы полей в таблице. И т.п.
Мы рыдали над этим шедевром с одной стороны и снимали шляпы перед их отделом маркетинга, с другой!


Грин   (2004-03-24 13:47:00) [22]


> Курдль ©   (24.03.04 13:38) [37]


Так покажите же свои не пионерские самоделки - гордость компьютерного рынка России. Может тогда возьмем равнение на вас и, например, программа The Bat будет хранить корреспонденцию в базе Oracle, а то какой стыд хранить в каких-то непотребных табличках. Что-то вы, уважаемый, никак не можете абстрагироваться от бухгалтерских многопользовательских программ и понять, что есть нормальные задачи, где никак не требуются ваши фавориты. Еще вот пример, хотели бы вы скачать ICQ, а после этого еще качать бесплатный клиент к Oracle, необходимый для работы аси..опуститесь на землю.


Курдль   (2004-03-24 13:38:00) [23]


> Что вы сами-то конкретно сделали полезного для других?

Мне сдается, что сам факт обсуждения весьма полезен для всех.
Понимания хороша статья, или нет - добьемся совместными усилиями.
Я тоже высказываю свои мысли и свой опыт, ктотрый, надеюсь, тоже кому-то может пригодиться.
Мнея всегда поражали умники, пытающиеся создавать программы на основе копеечных пионерских самоделок, а потом впаривать их, как серьезные разработки. Из-за таких специалистов компьютерный рынок России находится в глубокой...


Александр М   (2004-03-24 13:35:00) [24]


> - ответственность производителей... Вы сможете призвать
> к ответственности производителей "VolgaDB", если по их вине
> Ваш заказчик понесет убытки?


А что, вы сможете призвать к ответсвенности производителей Oracle или MS SQL? Ну-ну...


Курдль   (2004-03-24 13:27:00) [25]


> Не хочется переводить разговор в "Потрепаться"

АНАЛОгично! :)
- ответственность производителей... Вы сможете призвать к ответственности производителей "VolgaDB", если по их вине Ваш заказчик понесет убытки?
- тех. поддержка... Вы уверены, что при выходе новых ОС сможете легко получить обновленные версии СУБД для своих уже произведенных и внедренных программ?
- отработка SQL... Какие-то СУБД могут в лучшем случае отработать стандартные ANSI запросы. (А какие-то и того не могут). Некоторые расширяют возможности до LP/SQL, Transact SQL и даже понимают Java.

И теперь главное - СТОИМОСТЬ.
Оракл допускает бесплатное пользование своей СУБД в некоммерческих целях (т.е. если Вы не будете включать в стоимость своей проги стоимость СУБД, а Ваш клиент качнет ее с сайта Оракл бесплатно).
Лицензия Сайбэйс (ASA) стоит 100 у.е. (из-за этого стоит торговаться?) Дальше - по убыванию.


Грин   (2004-03-24 13:14:00) [26]


> Исследование похоже на "Чей дизельный двигатель для промышленных
> компрессоров красивше блестит". :)


Меня всегда поражали "умники", которые горят желанием опустить творчество других и выглядеть такими красивыми и плюшевыми робингудами. Что вы сами-то конкретно сделали полезного для других? Может у Вас получится провести правильное исследование не похожее на сравнение дизельных двигателей для промышленных компрессоров? Пишите, а мы посмотрим, покритикуем. А флеймить мы все умеем.


Deniz   (2004-03-24 13:08:00) [27]

Не хочется переводить разговор в "Потрепаться", но: (по некоторым пунктам вопросов нет)
> Курдль ©   (24.03.04 12:17) [28]
> Ок! ТОгда я предлагаю еще несколько критериев для оценки
> СУБД:
> - надежность;
Ну это всем нравится
> - ответственность производителей;
Что-то я не понимаю, что есть ответственность?
> - качество тех. поддержки;
Что есть качество(скорость+стоимость+правильность)?
> - способность взаимодействовать с CASE-инструментами (иначе как же Вы будете проектировать даже те самые хранилища закладок?);
Не всегда для маленькой программы необходимо пользоваться CASE-средствами в режиме генерации(достаточно в ErWin нарисовать структуру и распечатать ее)
И еще, очень интересно скока будет стоить такая программа с Oracle?
> - возможность использования стандартных средств доступа (ODBC, JDBC, OLEDB);
Так какой же из них стандартнее?
> - качество отработки SOL;
Качество у всех должно быть одинаковое, т.е. если кол-во записей по select * from ... в Oracle=5 то и в M$SQL/Firebird/ и т.д. тоже=5, а вот скорость у всех разная
> - возможность программирования встроенных процедур, ф-ций и триггеров;
Так это у всех есть
> - инструментарий настройки и тех. сопровождения;
> - средства проектирования отчетов;
И это тоже должно быть в СУБД?
> - средства репликации и архивирования...
Ну насчет репликации тут да, а вот архивирование(backup/restore) есть у всех
> Это так - "на вскидочку". И кто меня убедит, что какой-то
> из этих пунктов менее важен, чем быстродействие?
Я могу привести один критерий, который оооочень сильно перекрывает все вышеперечисленные - это СТОИМОСТЬ, и если Ваша контора готова выложить кучку тыс $ за ПО(в том числе и за сопровождение, администрирование и т.д.), то не надо думать что все конторы такие ... щедрые.
>Исследование похоже на "Чей дизельный двигатель для промышленных компрессоров красивше блестит". :)
А Вы предлагаете, при необходимости на такси доехать до дома, ждать именно Мерса 600 и чтоб через каждый километр меняли шины как в формуле 1, и обязательно что бы в машине был бар и широкоформатный телевизор?
Уф, высказался.


Курдль   (2004-03-24 12:35:00) [28]


> Да..да..это же какой штат сотрудников нужно содержать для
> таких исследований?


Вот поэтому и есть простые пути для решения проблемы "СУБД, используемых в программах, требующих удобные и компактные средства для хранения данных" применять то, что рекомендуют производители Ваших же средств разработки! Надо сделать "закладки" - возьмите XML. Надо простейший "клиент-сервер" - возьмите InterBase и пользуйте! И т.д.
Возникнут проблемы - жалуйтесь Борланду (ведь наверняка Вы работаете на лицензионных продуктах).


Курдль   (2004-03-24 12:30:00) [29]


> Зачем убеждать, важны, но не имеют относешния к целям проводимого
> иследования.

Исследование похоже на "Чей дизельный двигатель для промышленных компрессоров красивше блестит". :)


Александр М   (2004-03-24 12:28:00) [30]


> Ок! ТОгда я предлагаю еще несколько критериев для оценки
> СУБД:
> - надежность;
> - ответственность производителей;
> - качество тех. поддержки;


Да..да..это же какой штат сотрудников нужно содержать для таких исследований?


Anatoly Podgoretsky   (2004-03-24 12:25:00) [31]

Зачем убеждать, важны, но не имеют относешния к целям проводимого иследования.


Курдль   (2004-03-24 12:17:00) [32]

Ок! ТОгда я предлагаю еще несколько критериев для оценки СУБД:
- надежность;
- ответственность производителей;
- качество тех. поддержки;
- способность взаимодействовать с CASE-инструментами (иначе как же Вы будете проектировать даже те самые хранилища закладок?);
- возможность использования стандартных средств доступа (ODBC, JDBC, OLEDB);
- качество отработки SOL;
- возможность программирования встроенных процедур, ф-ций и триггеров;
- инструментарий настройки и тех. сопровождения;
- средства проектирования отчетов;
- средства репликации и архивирования...

Это так - "на вскидочку". И кто меня убедит, что какой-то из этих пунктов менее важен, чем быстродействие?


Anatoly Podgoretsky   (2004-03-24 12:15:00) [33]

Александр М   (24.03.04 10:02) [22]
И для этого очень важно, чтобы записи  вносились неупорядоченно.
Кстатив отсутствует такой часто используемый движок как MS Access (JET и Standard) их то уж обязательно надо было включить в испытания.

Курдль ©   (24.03.04 10:47) [25]
Тестированию подвергаются файл-серверные движки, неправомочно сравнивать с клиент-серверными, конечно можно, но тогда надо добавлять персональные версии Interbase Personal, Oracle Personal, MS SQL (MSDE), Firebird Embeded и Yaffil, но жто другой класс движков


Александр М   (2004-03-24 12:01:00) [34]


> Курдль ©   (24.03.04 10:47) [25]
> Я чего-то не понимаю в жизни?..   :(


Думаю, что не понимаете. У тестируемых движков и у того же Oracle совершенно разные ниши применения. Неужели вы будете использовать Oracle в программах для хранения закладок, в Download менеджерах и прочих программах, требующих удобные и компактные средства для хранения данных?! Даже в самом начале статьи я написал, что каждую СУБД необходимо использовать для того круга задач, для которого она предназначена и поверьте мне, что даже для того же "убогого" Paradox, который подходит лишь "для учебных целей", есть и будет множество применений, где он будет выполнять задачи намного эффективнее того же Oracle, где его использование будет сродни пальбы по воробьям из пушки. И никаких полемик на счет: "Какая СУБД круче", каждая СУБД является лучшей для той задачи для которой она подходит и предназначена. Есть желание доказать крутость Oracle - напишите подобную статью и я уверен, что по многим тестам он не будет лидером.


Курдль   (2004-03-24 10:47:00) [35]

Я чего-то не понимаю в жизни?..   :(
Ведь BDE - набор средств, инструментов, если хотите, для работы с базами данных. С его помощью можно работать хоть с Ораклом, если есть желание позабавиться :)
Что именно Вы хотели протестировать? Несчастный Paradox, предлагаемый вместе с BDE в качестве "учебного пособия" для начинающих программистов?
Далее по Вашему тексту видно, что речь идет о СУБД, интегрированных со средствами доступа (видимо это Вы называете "движком").
По поводу качества СУБД. Думаю, что ни у кого нет сомнений, что лучшей СУБД времен и народов является Оракл. По поводу остальных могут быть легкие споры, типа: "в каких именно местах Сайбэйс уступает MS SQL серверу, а в каких значительно его превосходит".
Остальные СУБД можно принимать в расчет, как сильно компромиссные. Например, с InterBase красиво работать из Delphi, а MYSQL можно использовать, как удобную базу для разнотипных WEB приложений. Почему Вы не обратили внимания на такой шедевр однопользовательской СУБД, как Yaffil (Наш ответ Firebird-у)?
И почему не затронуты "внешние" компоненты DOA, SQL Direct или
собственные ADO, dbExpress...


Александр М   (2004-03-24 10:31:00) [36]

Раздобыл Advantage Database Local, спасибо за идею, для данного тестирования подходит наилучшим образом, вечером опубликую результаты.


Александр М   (2004-03-24 10:09:00) [37]


> sniknik ©   (24.03.04 09:59) [21]
> проверь еще и так (принцип), результаты могут удивить (возможно)
> во всяком случае после одного разбора исходников движка
> сам всегда так делаю


Хотел я так написать, но не стал, т.к. результаты будут лучше, но останутся совершенно пропорциональными с результатами использованиz функции FindField, которая описана в базовом классе TDataSet. В реальном коде, естественно лучше использовать обращение к полям как к объектам, это даст максимальную производительность. В данном случае производительность вырастет всего-лишь пропорционально.


Александр М   (2004-03-24 10:02:00) [38]


> Anatoly Podgoretsky ©   (24.03.04 09:30) [20]
> Александр М   (24.03.04 09:23) [17]
> Ну не так много движков со встроеным SQL


Все рассматриваемые движки, кроме TinyDb, имеют встроенный SQL. На счет тестирования скорости работы фильтра и Locate: проведу несколько тестов с разными параметрами. И еще есть идея протестировать скорость работы индексов: активировать индекс по одному из полей (установив IndexName) и попробовать пробежаться по таблице от начала до конца, это будет отличный тест скорости работы индекса.


sniknik   (2004-03-24 09:59:00) [39]

проверь еще и так (принцип), результаты могут удивить (возможно)
во всяком случае после одного разбора исходников движка сам всегда так делаю


procedure AddRecords1(TBL: TDataSet);
const
 MAX_RECORDS = 100000;
var
 I: Integer;
 STR1, STR2, STR3, STR4, FLOAT1, FLOAT2: TField;
begin
 MainForm.PC.Start;
 TBL.Active := True;
 try
  STR1:= TBL.FieldByName('STR1');
  STR2:= TBL.FieldByName('STR1');
  STR3:= TBL.FieldByName('STR1');
  STR4:= TBL.FieldByName('STR1');
  FLOAT1:= TBL.FieldByName('FLOAT1');
  FLOAT2:= TBL.FieldByName('FLOAT2');

  for I := 1 to MAX_RECORDS do
  begin
    TBL.Append;
    STR1.AsString := Format('%d', [I]);
    STR2.AsString := Format('%d', [MAX_RECORDS - I]);
    STR3.AsString := Format('%d', [I]);
    STR4.AsString := Format('%d', [MAX_RECORDS - I]);
    FLOAT1.AsFloat := I + I / 3;
    FLOAT1.AsFloat := MAX_RECORDS - I / 3;
    TBL.Post;
  end;
 finally
  TBL.Active := False;
  MainForm.PC.Show;
 end;
end;


Anatoly Podgoretsky   (2004-03-24 09:30:00) [40]

Александр М   (24.03.04 09:23) [17]
Ну не так много движков со встроеным SQL

И особо обратити внимание на фильтрацию, во первых надо делать два незавимых теста, один по индексированым полям, второй по не индексированым полям. Кроме того когда в результат фильтра попадает только одна запись и когда много, результаты могут кардинально отличаться для разных движков.

Для БДЕ надо делать минимум два теста, для Парадокса и для dBase
А объем в 100 000 записей очень подходящий для десктопных систем, меньше или больше уже не то.


Страницы:   1 2 3

Наверх

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