Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизBDE альтернативы. Кто быстрее? Найти похожие ветки
← →
Александр М (2004-03-20 14:47) [0]Решил произвести фундаментальные исследования на эту тему. В результате чего появилась моя первая статья. За речевые обороты сильно не бить, а в остальном, думаю, многим будет интересно почитать:
http://www.degisy.com/bdealternative.php
Комментарии принимаются с удовольствием!
← →
Александр М (2004-03-20 15:12) [1]Извиняюсь за второй пост, думал первый не добавился..глючит форум :(
← →
Vemer © (2004-03-21 23:59) [2]Извиняюсь, но просто интересно - а Yaffil Personal в эту компанию не попадает? Автономен, мал, не требует установки..
← →
Zacho © (2004-03-22 00:02) [3]Честно говоря, статью пока не прочитал, но исходя из моего (и не только моего) опыта быстродействие в основном зависит совсем не от компонентов (драйверов etc) доступа к СУБД.
← →
Zacho © (2004-03-22 00:10) [4]Прочитал.
Комментарии есть, выскажу позже, когда обдумаю (и естественно, если после этого захочу высказать :) )
Пока что могу сказать: для многих - весьма полезная статья.
← →
Александр М (2004-03-22 06:24) [5]
> Честно говоря, статью пока не прочитал, но исходя из моего
> (и не только моего) опыта быстродействие в основном зависит
> совсем не от компонентов (драйверов etc) доступа к СУБД.
Когда идет сравнительное тестирование производительности СУБД в совершенно одинаковых условиях, отчего же производительности зависеть как не от драйвера доступа?
> Извиняюсь, но просто интересно - а Yaffil Personal в эту
> компанию не попадает? Автономен, мал, не требует установки..
Yaffi Personal навряд ли можно было тестировать наравне с описанными СУБД, так как это СУБД, работающая на основе запросов к ядру, а описанные СУБД работают методом прямого доступа к записям файла. Хотя, для интереса, можно и эту СУБД добавить.
← →
Deniz © (2004-03-22 07:46) [6]Много мыслей всяких-разных.
Если уж тест именно про однопользовательские СУБД(если их так можно назвать), то очень хочется посмотреть похожие тесты с некоторыми Деск-топ версиями крупных СУБД(Oracle, M$SQL) а также MySQL, FireBird/Yaffil, может еще кого если есть желающие.
По тесту, где поля с типом DATE? Где тот же Locate по всем типам полей(Integer, Float, String, Date)? Где тесты по работе с BLOB?
Если будет желание для нового теста, то есть немного пожеланий, хотя это все превратится в сравнение именно СУБД, но не компонент доступа, хотя ... вот:
1. Убрать ВСЕ СУБД, кто не поддерживает SQL-запросы.
2. Locate заменить на select ... from ... where ...
3. Создать ~10 связанных таблиц и тестировать именно селективную выборку.
4. Для одной и той же СУБД есть по несколько(>1) различных компонент доступа(например для FireBird: FIBPlus, IBX, ZeosDB, тот же BDE и это не весь список), хотелось бы и это посмотреть, как вариант выбора СУБД+Компоненты.
5. Сделать сравнительное описание возможностей(базовых) всех СУБД(триггеры, хп, view и т.д.)
6. Коль уж разговор про однопользовательский вариант работы, то возможность перейти на многопользовательский, установка на клиента(сложность), стоимость(для 1 клиента и для многопользовательской)
В общем что из этого получится не знаю, но ...
Может у кого есть и другие мысли.
← →
Александр М (2004-03-22 09:53) [7]
> Где тесты по работе с BLOB?
До них пока не дошли руки, но данная статья в ближайшее время будет расширена и будут добавлены другие тесты. Просто я не думал, что тестирование занимает такую кучу времени, теперь буду знать. А вообще я планирую написать целую серию статей про различные СУБД, тем более, что есть опыт работы приблизительно с десятком различных СУБД.
← →
Deniz © (2004-03-22 12:14) [8]Будем посмотреть, и удачи во всех начинаниях.
← →
Соловьев © (2004-03-22 12:17) [9]Ошибка подключения к базе данных: Host "62.118.251.68" is not allowed to connect to this MySQL server
← →
Александр М (2004-03-22 13:19) [10]
> Соловьев © (22.03.04 12:17) [9]
> Ошибка подключения к базе данных: Host "62.118.251.68" is
> not allowed to connect to this MySQL server
Это временное явление, наверное превышен предел одновременных подключений к базе у хостера. Планируем в ближайшее время переехать на другой, более надежный и высокоскоростной хостинг.
← →
Александр М (2004-03-22 14:11) [11]Добавил в статью тестирование скоростных характеристик работы с Blob-полями. Может кому интересны будут результаты.
← →
Александр М (2004-03-23 19:37) [12]Для тех кому интересно:
Заменил тест EasyTable 5.30 на EasyTable 6.00 и добавил тестирование движка Accuracer Database System
← →
Zacho © (2004-03-23 21:19) [13]
> Александр М (22.03.04 06:24) [5]
>
> Когда идет сравнительное тестирование производительности
> СУБД в совершенно одинаковых условиях, отчего же производительности
> зависеть как не от драйвера доступа?
Оттого. Совсем не от этого оно зависит.
← →
Deniz © (2004-03-24 06:27) [14]Так что? Yaffil personal ожидается в тестировании(только желательно с FIBPlus)?
← →
Александр М (2004-03-24 08:05) [15]
> Оттого. Совсем не от этого оно зависит.
Так отчего же, например? Понятное дело, что универсальное тестирование не подходит для всех СУБД. Возьмем хотя бы пример с фильтром: его реализация в различных движках абсолютно разная и если взять выражения фильтрующие группу записей: 1)вначале таблицы; 2)в середине таблицы; 3) в конце таблицы; то время фильтрации у одной и той же СУБД будет разное и во всех трех случаях лидеры могут оказаться разными. Но все же, это все-равно зависит от драйвера доступа. Вот если бы СУБД тестировались на разных машинах, тогда можно было бы сказать, что здесь влияние не только драйвера.
> Deniz © (24.03.04 06:27) [14]
> Так что? Yaffil personal ожидается в тестировании(только
> желательно с FIBPlus)?
Есть такие планы, потестировать SQL движки, но это на будущее :)
← →
Anatoly Podgoretsky © (2004-03-24 09:20) [16]Над тестовыми данными надо поработать, сейчас они уж больно упорядочены, даже для таких простых тестов даст ложные результаты.
← →
Александр М (2004-03-24 09:23) [17]
> Над тестовыми данными надо поработать, сейчас они уж больно
> упорядочены, даже для таких простых тестов даст ложные результаты.
Вот тут я полностью согласен, заменю инкрементные значения на сгенерированные случайным образом. И есть еще планы потестировать SQL-запросы, но думаю картина будет похожей на общую.
← →
Andrey V. © (2004-03-24 09:25) [18]Хотелось бы еще видеть среди тестируемых Advantage Database Server.
Мне казалось это распостраненная система.
← →
Александр М (2004-03-24 09:29) [19]
> Хотелось бы еще видеть среди тестируемых Advantage Database
> Server.
> Мне казалось это распостраненная система.
Поищу версию под Delphi и если она по всем критериям подойдет для данного обзора, то включу.
← →
Anatoly Podgoretsky © (2004-03-24 09:30) [20]Александр М (24.03.04 09:23) [17]
Ну не так много движков со встроеным SQL
И особо обратити внимание на фильтрацию, во первых надо делать два незавимых теста, один по индексированым полям, второй по не индексированым полям. Кроме того когда в результат фильтра попадает только одна запись и когда много, результаты могут кардинально отличаться для разных движков.
Для БДЕ надо делать минимум два теста, для Парадокса и для dBase
А объем в 100 000 записей очень подходящий для десктопных систем, меньше или больше уже не то.
← →
sniknik © (2004-03-24 09:59) [21]проверь еще и так (принцип), результаты могут удивить (возможно)
во всяком случае после одного разбора исходников движка сам всегда так делаю
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;
← →
Александр М (2004-03-24 10:02) [22]
> Anatoly Podgoretsky © (24.03.04 09:30) [20]
> Александр М (24.03.04 09:23) [17]
> Ну не так много движков со встроеным SQL
Все рассматриваемые движки, кроме TinyDb, имеют встроенный SQL. На счет тестирования скорости работы фильтра и Locate: проведу несколько тестов с разными параметрами. И еще есть идея протестировать скорость работы индексов: активировать индекс по одному из полей (установив IndexName) и попробовать пробежаться по таблице от начала до конца, это будет отличный тест скорости работы индекса.
← →
Александр М (2004-03-24 10:09) [23]
> sniknik © (24.03.04 09:59) [21]
> проверь еще и так (принцип), результаты могут удивить (возможно)
> во всяком случае после одного разбора исходников движка
> сам всегда так делаю
Хотел я так написать, но не стал, т.к. результаты будут лучше, но останутся совершенно пропорциональными с результатами использованиz функции FindField, которая описана в базовом классе TDataSet. В реальном коде, естественно лучше использовать обращение к полям как к объектам, это даст максимальную производительность. В данном случае производительность вырастет всего-лишь пропорционально.
← →
Александр М (2004-03-24 10:31) [24]Раздобыл Advantage Database Local, спасибо за идею, для данного тестирования подходит наилучшим образом, вечером опубликую результаты.
← →
Курдль © (2004-03-24 10:47) [25]Я чего-то не понимаю в жизни?.. :(
Ведь BDE - набор средств, инструментов, если хотите, для работы с базами данных. С его помощью можно работать хоть с Ораклом, если есть желание позабавиться :)
Что именно Вы хотели протестировать? Несчастный Paradox, предлагаемый вместе с BDE в качестве "учебного пособия" для начинающих программистов?
Далее по Вашему тексту видно, что речь идет о СУБД, интегрированных со средствами доступа (видимо это Вы называете "движком").
По поводу качества СУБД. Думаю, что ни у кого нет сомнений, что лучшей СУБД времен и народов является Оракл. По поводу остальных могут быть легкие споры, типа: "в каких именно местах Сайбэйс уступает MS SQL серверу, а в каких значительно его превосходит".
Остальные СУБД можно принимать в расчет, как сильно компромиссные. Например, с InterBase красиво работать из Delphi, а MYSQL можно использовать, как удобную базу для разнотипных WEB приложений. Почему Вы не обратили внимания на такой шедевр однопользовательской СУБД, как Yaffil (Наш ответ Firebird-у)?
И почему не затронуты "внешние" компоненты DOA, SQL Direct или
собственные ADO, dbExpress...
← →
Александр М (2004-03-24 12:01) [26]
> Курдль © (24.03.04 10:47) [25]
> Я чего-то не понимаю в жизни?.. :(
Думаю, что не понимаете. У тестируемых движков и у того же Oracle совершенно разные ниши применения. Неужели вы будете использовать Oracle в программах для хранения закладок, в Download менеджерах и прочих программах, требующих удобные и компактные средства для хранения данных?! Даже в самом начале статьи я написал, что каждую СУБД необходимо использовать для того круга задач, для которого она предназначена и поверьте мне, что даже для того же "убогого" Paradox, который подходит лишь "для учебных целей", есть и будет множество применений, где он будет выполнять задачи намного эффективнее того же Oracle, где его использование будет сродни пальбы по воробьям из пушки. И никаких полемик на счет: "Какая СУБД круче", каждая СУБД является лучшей для той задачи для которой она подходит и предназначена. Есть желание доказать крутость Oracle - напишите подобную статью и я уверен, что по многим тестам он не будет лидером.
← →
Anatoly Podgoretsky © (2004-03-24 12:15) [27]Александр М (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:17) [28]Ок! ТОгда я предлагаю еще несколько критериев для оценки СУБД:
- надежность;
- ответственность производителей;
- качество тех. поддержки;
- способность взаимодействовать с CASE-инструментами (иначе как же Вы будете проектировать даже те самые хранилища закладок?);
- возможность использования стандартных средств доступа (ODBC, JDBC, OLEDB);
- качество отработки SOL;
- возможность программирования встроенных процедур, ф-ций и триггеров;
- инструментарий настройки и тех. сопровождения;
- средства проектирования отчетов;
- средства репликации и архивирования...
Это так - "на вскидочку". И кто меня убедит, что какой-то из этих пунктов менее важен, чем быстродействие?
← →
Anatoly Podgoretsky © (2004-03-24 12:25) [29]Зачем убеждать, важны, но не имеют относешния к целям проводимого иследования.
← →
Александр М (2004-03-24 12:28) [30]
> Ок! ТОгда я предлагаю еще несколько критериев для оценки
> СУБД:
> - надежность;
> - ответственность производителей;
> - качество тех. поддержки;
Да..да..это же какой штат сотрудников нужно содержать для таких исследований?
← →
Курдль © (2004-03-24 12:30) [31]
> Зачем убеждать, важны, но не имеют относешния к целям проводимого
> иследования.
Исследование похоже на "Чей дизельный двигатель для промышленных компрессоров красивше блестит". :)
← →
Курдль © (2004-03-24 12:35) [32]
> Да..да..это же какой штат сотрудников нужно содержать для
> таких исследований?
Вот поэтому и есть простые пути для решения проблемы "СУБД, используемых в программах, требующих удобные и компактные средства для хранения данных" применять то, что рекомендуют производители Ваших же средств разработки! Надо сделать "закладки" - возьмите XML. Надо простейший "клиент-сервер" - возьмите InterBase и пользуйте! И т.д.
Возникнут проблемы - жалуйтесь Борланду (ведь наверняка Вы работаете на лицензионных продуктах).
← →
Deniz © (2004-03-24 13:08) [33]Не хочется переводить разговор в "Потрепаться", но: (по некоторым пунктам вопросов нет)
> Курдль © (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 13:14) [34]
> Исследование похоже на "Чей дизельный двигатель для промышленных
> компрессоров красивше блестит". :)
Меня всегда поражали "умники", которые горят желанием опустить творчество других и выглядеть такими красивыми и плюшевыми робингудами. Что вы сами-то конкретно сделали полезного для других? Может у Вас получится провести правильное исследование не похожее на сравнение дизельных двигателей для промышленных компрессоров? Пишите, а мы посмотрим, покритикуем. А флеймить мы все умеем.
← →
Курдль © (2004-03-24 13:27) [35]
> Не хочется переводить разговор в "Потрепаться"
АНАЛОгично! :)
- ответственность производителей... Вы сможете призвать к ответственности производителей "VolgaDB", если по их вине Ваш заказчик понесет убытки?
- тех. поддержка... Вы уверены, что при выходе новых ОС сможете легко получить обновленные версии СУБД для своих уже произведенных и внедренных программ?
- отработка SQL... Какие-то СУБД могут в лучшем случае отработать стандартные ANSI запросы. (А какие-то и того не могут). Некоторые расширяют возможности до LP/SQL, Transact SQL и даже понимают Java.
И теперь главное - СТОИМОСТЬ.
Оракл допускает бесплатное пользование своей СУБД в некоммерческих целях (т.е. если Вы не будете включать в стоимость своей проги стоимость СУБД, а Ваш клиент качнет ее с сайта Оракл бесплатно).
Лицензия Сайбэйс (ASA) стоит 100 у.е. (из-за этого стоит торговаться?) Дальше - по убыванию.
← →
Александр М (2004-03-24 13:35) [36]
> - ответственность производителей... Вы сможете призвать
> к ответственности производителей "VolgaDB", если по их вине
> Ваш заказчик понесет убытки?
А что, вы сможете призвать к ответсвенности производителей Oracle или MS SQL? Ну-ну...
← →
Курдль © (2004-03-24 13:38) [37]
> Что вы сами-то конкретно сделали полезного для других?
Мне сдается, что сам факт обсуждения весьма полезен для всех.
Понимания хороша статья, или нет - добьемся совместными усилиями.
Я тоже высказываю свои мысли и свой опыт, ктотрый, надеюсь, тоже кому-то может пригодиться.
Мнея всегда поражали умники, пытающиеся создавать программы на основе копеечных пионерских самоделок, а потом впаривать их, как серьезные разработки. Из-за таких специалистов компьютерный рынок России находится в глубокой...
← →
Грин (2004-03-24 13:47) [38]
> Курдль © (24.03.04 13:38) [37]
Так покажите же свои не пионерские самоделки - гордость компьютерного рынка России. Может тогда возьмем равнение на вас и, например, программа The Bat будет хранить корреспонденцию в базе Oracle, а то какой стыд хранить в каких-то непотребных табличках. Что-то вы, уважаемый, никак не можете абстрагироваться от бухгалтерских многопользовательских программ и понять, что есть нормальные задачи, где никак не требуются ваши фавориты. Еще вот пример, хотели бы вы скачать ICQ, а после этого еще качать бесплатный клиент к Oracle, необходимый для работы аси..опуститесь на землю.
← →
Курдль © (2004-03-24 14:14) [39]Ок! Все правильно! Такие исследования действительно нужны!
Я все к тому, что для меня не быстродействие главное, понимаете?
Пока что я не видел более простого, чем упомянутый мной выше Yaffil. Если глубокоуважаемые исследователи порекомендуют столь же простой, коммуникабельный и главное надежный "движок", то я с удовольствием им воспользуюсь.
Не могу порекомендовать свои разработки, т.к. ничего не делаю полезного для программистов. Но могу привести пример программ лидера одного из направлений коммерческих программ. Тип близок к "бухгалтерским многопользовательским программам".
СУБД "Clarion" (это в XXI веке!). В комплект поставки входит утилита "восстановитель БД" - это когда база рушится полностью, существует возможность восстановить структуру таблиц, но не содержание. (Вам бы понравилось, если с автомобилем в комплекте шел какой-нить "восстановитель рулевого управления" навроде кувалды?:)
Модель БД включает в себя сотню таблиц, но лишь десяток реляционных связей (!). Схема "Многие-ко-многим" реализована за счет стократного повторения группы полей в таблице. И т.п.
Мы рыдали над этим шедевром с одной стороны и снимали шляпы перед их отделом маркетинга, с другой!
← →
Deniz © (2004-03-24 14:23) [40]> Курдль © (24.03.04 13:38) [37]
> Я тоже высказываю свои мысли и свой опыт, ктотрый, надеюсь, тоже кому-то может пригодиться.
Опыт - весч хорошая, но как только "опытный" человек начинает разговаривать, мягко говоря, некорректно и грубо, начинаются проблемы с общением и "вес" опыта не может пересилить неприязненные ощущения. Если хотите чтобы Вас хотябы слушали, не надо грубить и наезжать. "Несчастный Paradox" [25]. Я не говорю что он счастливый, но ...
>Думаю, что ни у кого нет сомнений, что лучшей СУБД времен и народов является Оракл. [25] А если есть сомнения, как быть?
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.051 c