Вы конечно, меня извините,
Mar. 3rd, 2010 11:51 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
но PostgreSQL с первого взгляда выглядит более правильной СУБД чем Firebird.
1) Логи, много понятных логов. Небо и земля, по сравнению с ничего не значащим бредом, которым firebird.log заполнен чуть более чем полностью. Т.е. там даже нет возможности включить что нибудь вроде "протоколирование доступа к базе", не говоря уже о запросах, итд.
2) Читабельный вывод консольных утилит. Posix-командная строка этих самых утилит. Вменяемые параметры их же.
3) Несколько вариантов аутентификации, управление аутентификацией c детализацией по адресам-маскам, именам базы, юзеров
4) доступ через ssl.
5) И наконец, ключевой аспект: документация. 2100 страниц нормальной понятной хорошо структурированной документации, доступной в виде PDF с официального сайта. В отличие от, блядь, документации по Interbase 6 на которую до сих пор ссылаются на сайте FB и потока сознания разработчиков в виде quick start quide и release notes.
1) Логи, много понятных логов. Небо и земля, по сравнению с ничего не значащим бредом, которым firebird.log заполнен чуть более чем полностью. Т.е. там даже нет возможности включить что нибудь вроде "протоколирование доступа к базе", не говоря уже о запросах, итд.
2) Читабельный вывод консольных утилит. Posix-командная строка этих самых утилит. Вменяемые параметры их же.
3) Несколько вариантов аутентификации, управление аутентификацией c детализацией по адресам-маскам, именам базы, юзеров
4) доступ через ssl.
5) И наконец, ключевой аспект: документация. 2100 страниц нормальной понятной хорошо структурированной документации, доступной в виде PDF с официального сайта. В отличие от, блядь, документации по Interbase 6 на которую до сих пор ссылаются на сайте FB и потока сознания разработчиков в виде quick start quide и release notes.
no subject
Date: 2010-03-04 10:14 am (UTC)Дмитрий, ваша роль в околоинтербейзовом комьюнити должна, по идее, быть аналогична Тому Кайту. (Том Кайт - это такой ИИ, который завелся внутри оракла от переизбытка кода и поэтому всё о нем знает )
А вы паясничаете, по сути.
Что вы хотите мне доказать мелкими придирками? Что IB быстр, документирован, надежен и беспроблемен в эксплуатации? Вы до сих пор впариваете доверчивым людям эту чушь?
Да я специально этот тред завел только ради того, чтобы поделиться своим опытом с IB/Firebird. И я верю, что плохие решения должны умирать, а хорошие - жить. Надеюсь кто-нибудь прочитает это, и НЕ КУПИТ решение на базе IB. Вероятность низка, но тем не менее.
Ещё раз, не отвлекаясь, повторяем мантру все вместе: Interbase/Firebird - это некачественное, плоходокументированное, медленное, проблемное в эксплуатации семейство серверов.
no subject
Date: 2010-03-04 11:31 am (UTC)Оно работает достаточно устойчиво, другое дело, что надо сравнивать с другими серверами, чем я сейчас и занимаюсь.
С медленностью вопрос неясный. На данный момент у меня три варианта медленной работы: 1) устаревшая статистика индексов. Лечится однократным ее обновлением. 2) Загадочное поведение на некоторых виндовых серверах (на линуксах не пробовал, не знаю) - тупо работает в 5 раз медленнее чем на аналогичных машинах. В чем причина - то ли SATA контроллеру стиль работы не нравится, то ли диск сдыхает, то ли в FB что-то не то - не знаю. 3) Мой личный плющ - где то остается не завершенная транзакция и начинает расти разрыв между oldest snapshot и текущей транзакцией, из-за чего перестает собираться мусор и начинает тупить. При моих сотнях транзакций в секунду это быстро складывает сервер.
Я не знаю, что в таких случаях делают другие версионники - не пробовал.
no subject
Date: 2010-03-04 11:40 am (UTC)no subject
Date: 2010-03-04 12:11 pm (UTC)включите Write Cache у контроллера диска. Выучите наконец эту область администрирования железа, освойте perfmon, что-ли.
no subject
Date: 2010-03-04 12:30 pm (UTC)Кстати, эта птица не на всех контроллерах включается, драйвера не дают вроде
no subject
Date: 2010-03-04 01:09 pm (UTC)Почему этот софт не ставят поставщики компов и админы-самосборщики - загадка.
Админы обычно скачут с бубном вокруг таких систем, лезут в биос, дрова, и естественно, ничего не находят. Правда, с добыванием софта, управляющего конкретным RAID, бывает цирк - в ноябре в одной конторе сутки не могли скачать его с hp.com. И что более загадочно, на диске с дровами этого софта тоже не было.
no subject
Date: 2010-03-04 12:09 pm (UTC)Позорно то, что Вы не задумываясь транслируете чужие заблуждения. Если бы Вы задали вопрос, я бы ответил. Но Вы стали УТВЕРЖДАТЬ что план запросов вкомпилирован в процедуры.
Тем не менее, опровержение повторяемого Вами заблуждения найти очень даже можно:
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 года - все коммунисты за углами мерещатся.
no subject
Date: 2010-03-04 12:38 pm (UTC)Причем, заметьте, я заранее даю вам все карты в руки и признаю за вами больший и главное современный опыт. Нет же нужно развести гуманитарную клоунаду.
И не передергивайте на коммунистов, не выйдет.
Апеллируйте к основным факторам - скорости, стоимости эксплуаталии. Что, нечего сказать?
no subject
Date: 2010-03-04 02:06 pm (UTC)P.S. Но за все это приходится платить геморроем при разработке. Одно отсутствие Invalid object-ов обошлось там во многие человеко-дни. Но в постгресе их тоже нет.
no subject
Date: 2010-03-04 02:15 pm (UTC)no subject
Date: 2010-03-04 03:46 pm (UTC)Плюс, в Oracle для внесения изменений не требуется эксклюзивного доступа к базе, достаточно только, чтобы на таблице не висело длительных незакрытых транзакций. Это тоже огромный плюс - не приходится просить всех девелоперов выйти с базы, чтобы внести туда изменения.
no subject
Date: 2010-03-04 05:10 pm (UTC)А вот эксклюзивного доступа вроде и в FB не требуется - главное чтобы объект изменяемый сейчас не трогал никто.
no subject
Date: 2010-03-04 09:41 pm (UTC)no subject
Date: 2010-03-05 08:30 am (UTC)Я помню несколько вариантов:
1) в какой-то версии просто не давало менять занятые SP и ругалось сообщением. Сейчас просто пишет в лог.
2) сейчас если менять объект, прямо сейчас используемый в незавершенной транзакции - вроде тоже ругается
3) на классике не сразу обновляется кэш метаданных, во всяком случае, другие процессы сразу изменения не видят (давно не перепроверял, может уже и исправили).
Вообще ключевой аспект, что достаточно делать транзакции короткими и всегда закрывать их (commit или rollback) - тогда никаких проблем нет.
no subject
Date: 2010-03-04 03:24 pm (UTC)Справедливости ради надо заметить, что процедура инсталляции у всех СУБД сейчас приблизительно одинаковая. Оракл сильно упростил инсталлятор. А MSSQL умудрился усложнить.
А там где скорость не нужна можно всё просто в XML положить или в sqlite.
no subject
Date: 2010-03-04 04:06 pm (UTC)Сказки только не надо рассказывать. Для Firebird можно сделать свой собственный инсталлятор, который все установит, пропишет куда надо чистую базу и все сразу заработает. Для Oracle, если нет выделенного админа - приходится посылать пошаговые инструкции что и куда нажать надо, и все равно каждый раз какой-нибудь новый геморрой всплывает. Спасибо, плавали, знаем.
А там где скорость не нужна можно всё просто в XML положить или в sqlite.
XML - сразу видно большого специалиста. Скорость важна = миллионы и десятки миллионов записей. Скорость не важна - сотня тысяч записей и меньше. XML - это файлы конфигурации. Sqllite - не многопользовательская СУБД и не поддерживает вложенных SQL.
no subject
Date: 2010-03-04 04:21 pm (UTC)А про XML и Sqllite прошу прощения - совсем забыл что нужна многопользовательность.
no subject
Date: 2010-03-04 12:13 pm (UTC)сейчас выясним, кто паясничает. Предлагаю посмотреть процедуру и ее blr. И найти там вкомпилированный план запроса.
create PROCEDURE a
as
declare variable i integer;
begin
select emp_no from employee
where EMP_NO = 1
into :i;
end;
blr_version5,
blr_begin,
blr_message, 1, 1,0,
blr_short, 0,
blr_begin,
blr_declare, 0,0, blr_long, 0,
blr_assignment,
blr_null,
blr_variable, 0,0,
blr_stall,
blr_label, 0,
blr_begin,
blr_begin,
blr_for,
blr_singular,
blr_rse, 1,
blr_relation, 8, 'E','M','P','L','O','Y','E','E', 0,
blr_boolean,
blr_eql,
blr_field, 0, 6, 'E','M','P','_','N','O',
blr_literal, blr_long, 0, 1,0,0,0,
blr_end,
blr_begin,
blr_assignment,
blr_field, 0, 6, 'E','M','P','_','N','O',
blr_variable, 0,0,
blr_end,
blr_end,
blr_end,
blr_end,
blr_send, 1,
blr_begin,
blr_assignment,
blr_literal, blr_short, 0, 0,0,
blr_parameter, 1, 0,0,
blr_end,
blr_end,
blr_eoc
no subject
Date: 2010-03-04 12:13 pm (UTC)no subject
Date: 2010-03-04 12:27 pm (UTC)Я не буду сейчас искать IB 4.0 или 4.2.
no subject
Date: 2010-03-04 01:03 pm (UTC)я Вам уже процитировал, что план в процедуре будет только в том случае, если в ней запрос написать с явным планом.
>Я не буду сейчас искать IB 4.0 или 4.2.
чего искать-то. у меня на компе есть. Я как раз с 4.0 и увидел, что планов в процедурах нет. isql уже очень давно позволяет посмотреть blr процедур и триггеров.
no subject
Date: 2010-03-04 02:27 pm (UTC)no subject
Date: 2010-03-04 12:25 pm (UTC)http://www.ibase.ru/devinfo/ibmyths.htm
пункт 9
9. Скомпилированные процедуры хранят планы запросов
Ничего подобного (если только план запроса не задан явно). Данный миф основан на том, что процедура или триггер после первого вызова (и именно в этот момент вычисляются планы запросов, которые в процедуре написаны) остается в кэше метаданных до тех пор, пока все клиенты, вызывавшие эту процедуру, не отсоединятся. В этом случае действительно, пока процедура находится в памяти, планы запросов не меняются, даже если изменится статистика используемых планами индексов.
Добавлю, что да, у IB/FB есть недостатки, как и у любой другой РСУБД. Но. Если Вы работали с этой СУБД 10 лет назад, и не знаете НИЧЕГО о том, что за эти 10 лет поменялось, Вам не стоит
- транслировать старые баги или особенности на текущие версии
- думать, что за 10 лет ничего не изменилось
И, когда будете повторять ту свою "мантру", обязательно прибавляйте, с какой версией IB Вы работали, и как давно это было. А то может случиться, что Ваш оппонент будет очень даже в курсе свежих IB/FB, и в результате Вы будете выглядеть бледно.
Я если позволяю себе высказывания в адрес других РСУБД, то перед этим обычно проверяю документацию и форумы.