Какие СУБД минимизируют обращения к серверу?Какие СУБД лучше (в этой области), чем MS SQL? - PullRequest
3 голосов
/ 16 июня 2010

ВАЖНОЕ ПРИМЕЧАНИЕ: я получил много ответов и благодарю всех вас. Но все ответы - больше комментариев, чем ответов. Мой вопрос связан с количеством циклических поездок на RDBMS. Опытный человек сказал мне, что MySQL имеет меньше обходных путей, чем Firebird. Я хотел бы, чтобы ответ остался в той же области. Я согласен, что это не первое, что нужно учитывать, есть много других (дизайн приложения, настройки сети, настройки протокола ...), в любом случае я хотел бы получить ответ на мой вопрос, а не комментарий. Кстати, я нашел комментарии все очень полезными. Благодаря.

Когда задержка высока («когда проверка связи с сервером требует времени»), серверные обходные пути имеют значение.

Теперь я не хочу сосредотачиваться на обходах, созданных в программировании, а на обходах, которые происходят "под капотом" в движке БД + Protocol + DataAccessLayer.

Мне сказали, что FireBird имеет больше обращений, чем MySQL . Но это единственная информация, которую я знаю.

В настоящее время я поддерживаю MS SQL, но я хотел бы изменить СУБД, поэтому, чтобы сделать правильный выбор, я хотел бы также включить этот пункт в «мою матрицу функций сравнения СУБД», чтобы понять, какую из лучших СУБД выбрать в качестве альтернатива MS SQL.

Таким образом, смелое предложение, приведенное выше, заставило бы меня предпочесть MySQL Firebird (для концепции обходов, а не в целом), но может ли кто-нибудь добавить информацию?

А MS SQL где находится? Может ли кто-то «оценить» производительность в обоих направлениях основной СУБД или хотя бы: MS SQL, MySql, Postegresql, Firebird (я не заинтересован в Oracle, поскольку он не бесплатный, и если мне придется измениться, я перейду на бесплатную СУБД).

В любом случае MySql (как уже несколько раз упоминалось о stackoverflow) имеет неясное будущее и не 100% бесплатную лицензию. Поэтому мой окончательный выбор, вероятно, будет сделан на PostgreSQL или Firebird.

Дополнительная информация:

как-то вы можете ответить на мой вопрос, составив простой список вроде:

MSSQL: 3;

MySQL: 1;

Firebird: 2;

Postgresql: 2

(где 1 - хорошо, 2 - средне, 3 - плохо). Конечно, если вы можете опубликовать несколько ссылок, в которых сравниваются циклические переходы по РСУБД, было бы здорово

Обновление:

Я использую Delphi, и я планирую использовать DevArt DAC (UNIDAC), поэтому каким-то образом используется «тот же» компонент доступа к данным, поэтому, если существуют значительные различия в обоих направлениях, они обусловлены различными используемыми СУБД.

Дальнейшее обновление:

У меня есть 2-уровневое приложение (вставка среднего уровня не вариант), поэтому, выбирая СУБД, оптимизированную «в обе стороны», у меня есть шанс еще больше улучшить производительность приложения. Этот вид «оптимизации» подобен «купить более быстрое интернет-соединение» или «разместить больше памяти на сервере» или «обновить процессоры сервера». В любом случае важны и эти «оптимизации».

Ответы [ 6 ]

5 голосов
/ 16 июня 2010

Почему вы концентрируетесь на поездках туда и обратно?Обычно они не должны влиять на вашу производительность, если у вас нет очень медленной и ненадежной сети.Например, разница между драйверами ODBC и OLEDB для любой базы данных составляет почти порядок в пользу OLEDB.

Если вы переходите на MySQL или Firebird, используя ODBC вместо драйверов OLEDB / ADO.NET, вы получаете накладные расходы на несколько порядков больше, чем вы можете сэкономить.

4 голосов
/ 16 июня 2010

То, как ваше приложение закодировано и как и когда осуществляется доступ к данным и их передача, оказывает гораздо большее влияние в ситуациях медленного соединения или с большой задержкой, чем сам сетевой протокол db.Некоторые протоколы базы данных могут быть настроены для лучшей работы в необычных сценариях, то есть, увеличивая или уменьшая размер пакета данных.Вы также можете столкнуться с замедлением на самом уровне TCP / IP, что также может потребовать настройки TCP / IP.

3 голосов
/ 16 июня 2010

До версии 2.1 Firebird, безусловно, создавал больше трафика, чем MS SQL Server. У меня есть друг, который разработал приложение MSSQL C / S здесь, в Бразилии, где база данных находится в центре обработки данных. Клиентские приложения запускаются из многих магазинов, напрямую подключаясь к серверу через VPN / Интернет с использованием широкополосных подключений конечного пользователя (в основном 1 Мбит / с) в течение 5+ лет, и никаких проблем с этим нет. Соответствующие расстояния варьируются от нескольких сотен до тысяч километров от центра обработки данных.

После v2.1 я не могу понять, остается ли это так, потому что с тех пор я не проводил честного сравнения, и удаленный протокол Firebird был изменен для оптимизации сетевого трафика при медленных соединениях. Подробнее на сайте FirebirdSQL .

Не могу сказать о PostGres или MySQL, так как я не использовал их.

2 голосов
/ 16 июня 2010

Я не могу сообщить подробности прохождения туда-обратно, но некоторое время назад я находился в очень похожей ситуации, когда пытался найти альтернативы MS SQL из-за бюджетирования. Я и 4 других провели некоторое время, сравнивая MySQL, Postgres и FireBird.

Проработав долгое время с MySQL, мы быстро исключили его для большинства наших крупных проектов. Решение упало между Postgres и FireBird . Одна вещь, которая только начиналась, была отсутствие популярной поддержки / документации с FireBird в отличие от Postgres. Наши стендовые тесты всегда имели либо Postgres на вершине, либо на уровне FireBird , а не ниже. С точки зрения возможностей; Postgres снова ответил на наши потребности, в то время как FiredBird заставила нас найти креативные решения.

Ниже приведена таблица сравнения характеристик . я признаю, что это немного устарело, но все еще очень полезно :

Вот еще и длинный форум Тема, обсуждающая Разница

Удачи!

1 голос
/ 16 июня 2010

Я не буду ранжировать клиент-серверные СУБД со стороны двусторонних обращений.Существует множество вариантов сделать одну СУБД лучшей (попросить SQL Server использовать курсор по умолчанию), а другую - хуже (создать курсор Oracle с вложенными наборами данных).

То, что вы ищете, так это,Вероятно, общий подход, ориентированный на минимизацию трафика и независимую работу клиента с сервера.Это библиотеки доступа к данным среднего уровня.

Итак, если ваше приложение очень чувствительно к оптимизации трафика, ищите такие библиотеки, как DataAbstract , kbmMW или ThinDAC.

1 голос
/ 16 июня 2010

Иногда «обходные пути» также находятся на уровне протокола или доступа к данным, а не «механизм БД»

...