metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-03 11:51 am

Вы конечно, меня извините,

но PostgreSQL с первого взгляда выглядит более правильной СУБД чем Firebird.

1) Логи, много понятных логов. Небо и земля, по сравнению с ничего не значащим бредом, которым firebird.log заполнен чуть более чем полностью. Т.е. там даже нет возможности включить что нибудь вроде "протоколирование доступа к базе", не говоря уже о запросах, итд.

2) Читабельный вывод консольных утилит. Posix-командная строка этих самых утилит. Вменяемые параметры их же.

3) Несколько вариантов аутентификации, управление аутентификацией c детализацией по адресам-маскам, именам базы, юзеров

4) доступ через ssl.

5) И наконец, ключевой аспект: документация. 2100 страниц нормальной понятной хорошо структурированной документации, доступной в виде PDF с официального сайта. В отличие от, блядь, документации по Interbase 6 на которую до сих пор ссылаются на сайте FB и потока сознания разработчиков в виде quick start quide и release notes.

[identity profile] interbase.livejournal.com 2010-03-04 12:09 pm (UTC)(link)
>Не вижу ничего позорного, если имеете доказательства, прошу предоставить.
Позорно то, что Вы не задумываясь транслируете чужие заблуждения. Если бы Вы задали вопрос, я бы ответил. Но Вы стали УТВЕРЖДАТЬ что план запросов вкомпилирован в процедуры.

Тем не менее, опровержение повторяемого Вами заблуждения найти очень даже можно:
1. берете любую базу IB/FB с процедурой, в которой есть запрос.
2. открываете базу в IBExpert.
3. select * from rdb$procedures
4. в записи с нужной Вам процедурой есть столбец rdb$procedure_blr. Тыкаете в его содержимое. Это блоб.
5. переключаетесь в закладку as BLR.

Я хотел было привести сюда пример примитивной процедуры, но форматированный blr занимает много места. приведу отдельно.

>Что вы хотите мне доказать мелкими придирками?
почему мелкими? Вы несете чушь, и более того, сомневаюсь что только в этом месте.

>Что IB быстр, документирован, надежен и беспроблемен в эксплуатации?
да, все перечисленное, и именно у IB все хорошо с документацией. Вот у FB - плохо.

>чтобы поделиться своим опытом с IB/Firebird.
нет у Вас никакого опыта. Мало того что Вы откуда-то чужие слухи начинаете транслировать, так еще и "опыт" этот имели 11 лет назад. Да, InterBase 5.6 на текущий момент - полное говно, по сравнению с IB 2007/2009 или последними версиями Firebird. А 11 лет назад был вполне ничего.

>Ещё раз, не отвлекаясь, повторяем мантру все вместе
К чему эти злобствования, которые совершенно не соответствуют действительности?
Вы как эмигрант, уехавший из СССР до 1991 года - все коммунисты за углами мерещатся.

[identity profile] enternet.livejournal.com 2010-03-04 12:38 pm (UTC)(link)
Придирки мелкие потому, что вы выбираете утаревшие или несущественные утверждения. Оспорьте существенные: скорость, рестор из бакапа.
Причем, заметьте, я заранее даю вам все карты в руки и признаю за вами больший и главное современный опыт. Нет же нужно развести гуманитарную клоунаду.

И не передергивайте на коммунистов, не выйдет.

Апеллируйте к основным факторам - скорости, стоимости эксплуаталии. Что, нечего сказать?

[identity profile] osdm.livejournal.com 2010-03-04 02:06 pm (UTC)(link)
А с чем вы сравниваете? Имею опыт сравнения с Ораклом. Firebird на небольших объемах уделывает Оракл (даже их бесплатную Express версию) по стоимости и простоте эксплуатации в разы. Точнее - даешь клиенту инсталлятор, который все у него сам устанавливает, ему даже не нужно иметь квалифицированного админа. Если у клиента проблема - он пакует базу и присылает ее тебе. Ты ее правишь и отправляешь ему обратно. И ни какой магии с консолью. А скорость нужна далеко не везде.

P.S. Но за все это приходится платить геморроем при разработке. Одно отсутствие Invalid object-ов обошлось там во многие человеко-дни. Но в постгресе их тоже нет.

[identity profile] metaclass.livejournal.com 2010-03-04 02:15 pm (UTC)(link)
Invalid object - это что в виду имеется?

[identity profile] osdm.livejournal.com 2010-03-04 03:46 pm (UTC)(link)
Если добавляешь или удаляешь поле в таблице, от которой зависят вьюшки и хранимые процедуры, от которых в свою очередь зависят другие вьюшки и хранимые процедуры и т.п., то в Firebird-е приходится сначала удалять все зависимые объекты, изменять таблицу, а потом создавать все зависимые объекты заново. В Oracle вместо этого зависимые объекты помечаются признаком "Invalid" (не всегда, обычно, если после изменения объекта их невозможно скомпилировать, например, если удалили поле, на которое реально была ссылка во вьюшке). Их можно перекомпилировать, и они снова станут валидными. Благодаря этому внесение изменений в базу резко упрощается. У нас софтина сама обучена при необходимости вносить изменения в схему БД, поэтому для Firebird пришлось ее учить пересоздавать все дерево зависимостей.

Плюс, в Oracle для внесения изменений не требуется эксклюзивного доступа к базе, достаточно только, чтобы на таблице не висело длительных незакрытых транзакций. Это тоже огромный плюс - не приходится просить всех девелоперов выйти с базы, чтобы внести туда изменения.

[identity profile] metaclass.livejournal.com 2010-03-04 05:10 pm (UTC)(link)
А, с зависимостями это мрак, да. Сложновато переделывать бывает.

А вот эксклюзивного доступа вроде и в FB не требуется - главное чтобы объект изменяемый сейчас не трогал никто.

[identity profile] osdm.livejournal.com 2010-03-04 09:41 pm (UTC)(link)
В теории, наверное, не требуется, но на практике почему-то приходится всех с базы выгонять. Где у кого какой объект затронут - установить не удается. Может быть, конечно, где-то в нашей софтине проблема, но с ораклом при аналогичной схеме использования проблем нет.

[identity profile] metaclass.livejournal.com 2010-03-05 08:30 am (UTC)(link)
А что происходит если не выгнать?
Я помню несколько вариантов:
1) в какой-то версии просто не давало менять занятые SP и ругалось сообщением. Сейчас просто пишет в лог.
2) сейчас если менять объект, прямо сейчас используемый в незавершенной транзакции - вроде тоже ругается
3) на классике не сразу обновляется кэш метаданных, во всяком случае, другие процессы сразу изменения не видят (давно не перепроверял, может уже и исправили).

Вообще ключевой аспект, что достаточно делать транзакции короткими и всегда закрывать их (commit или rollback) - тогда никаких проблем нет.

[identity profile] enternet.livejournal.com 2010-03-04 03:24 pm (UTC)(link)
Сравниваю с ораклом и MSSQL.

Справедливости ради надо заметить, что процедура инсталляции у всех СУБД сейчас приблизительно одинаковая. Оракл сильно упростил инсталлятор. А MSSQL умудрился усложнить.

А там где скорость не нужна можно всё просто в XML положить или в sqlite.

[identity profile] osdm.livejournal.com 2010-03-04 04:06 pm (UTC)(link)
Справедливости ради надо заметить, что процедура инсталляции у всех СУБД сейчас приблизительно одинаковая

Сказки только не надо рассказывать. Для Firebird можно сделать свой собственный инсталлятор, который все установит, пропишет куда надо чистую базу и все сразу заработает. Для Oracle, если нет выделенного админа - приходится посылать пошаговые инструкции что и куда нажать надо, и все равно каждый раз какой-нибудь новый геморрой всплывает. Спасибо, плавали, знаем.

А там где скорость не нужна можно всё просто в XML положить или в sqlite.

XML - сразу видно большого специалиста. Скорость важна = миллионы и десятки миллионов записей. Скорость не важна - сотня тысяч записей и меньше. XML - это файлы конфигурации. Sqllite - не многопользовательская СУБД и не поддерживает вложенных SQL.

[identity profile] enternet.livejournal.com 2010-03-04 04:21 pm (UTC)(link)
А я и не рассказываю сказок. У оракла сейчас реально простой инсталлятор, можно отдать любому дауну - даун установит. Для MSSQL всегда можно было делать кастомные инсталляторы. Я делал. Но не с целью упростить, он там и так простой как валенок, а с целью развернуть ещё кое-какие свои пакеты сразу с инсталляцией сервера.

А про XML и Sqllite прошу прощения - совсем забыл что нужна многопользовательность.