Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.05 c
7-1078041318
sss
2004-02-29 10:55
2004.04.25
NT service


14-1080890830
IronHawk
2004-04-02 11:27
2004.04.25
Не интегральная формула вычисления длинны дуги эллипса?


14-1080807209
Zaika
2004-04-01 12:13
2004.04.25
STALKER


1-1081247825
k@k
2004-04-06 14:37
2004.04.25
SideBar


4-1077190602
Алексей
2004-02-19 14:36
2004.04.25
CreateDialog, Application.DialogHandle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский