![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BDE альтернативы. Кто быстрее? [D6]
Александр М © (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 записей очень подходящий для десктопных систем, меньше или больше уже не то.