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 07:31 am (UTC)(link)
>Интербейз конкретно стянул некоторые неудачные решения, например генераторы.
не вижу генераторов в Оракле. Доказательства про "стянул", пожалуйста, с перечнем неудачных решений.
Генераторы, кстати, вполне даже очень удачные. Не хуже sequence или @identity, а порой даже и лучше.

>Процедуры можно не перекомпилировать, будет работать, но поскольку план намертво вкомпилирован в bsql
да хватит уже позориться, план никогда не был вкомпилирован в BLR, ни в одной версии IB/FB.

>Евгений Ваганович, перелогиньтесь там прям из лужи.
посылаю обратно.

[identity profile] vp.livejournal.com 2010-03-04 07:56 am (UTC)(link)
Генераторы, кстати, вполне даже очень удачные. Не хуже sequence или @identity, а порой даже и лучше.

Я вставлю 5 копеек. Генераторы в ФБ - штука наимощнейшая и очень приятная в использовании. Например, у нас были задачи, когда мы генерировали уникальные ключи в контексте "предприятие - подразделения", чтобы они никогда не пересекались друг с другом. В этом плане генераторы ФБ были спасением.

[identity profile] norritt.livejournal.com 2010-03-04 09:36 am (UTC)(link)
Подписываюсь. Когда потом на MS SQL идентити переделывали — геморрою было огого

[identity profile] enternet.livejournal.com 2010-03-04 10:16 am (UTC)(link)
Нарушаете первую заповедь, грешник ) Идентификатор - есть ничто по форме своей и в ничто уйти должен.
Нельзя на него накладывать никакой допфункционал, покайтесь )

[identity profile] vp.livejournal.com 2010-03-04 10:53 am (UTC)(link)
Читаем внимательно.
Требование к генератору было такое, чтобы потом было возможно наиболее простым методом смержить базы с разных мест. По сути дела можно было бы использовать подобие ГУИДа.

[identity profile] enternet.livejournal.com 2010-03-04 11:00 am (UTC)(link)
Ну так и использовали бы GUID'ы. Кто-то (может даже сам господин Кузьменко) помнится целую статью написал "как использовать PK GUID на IB чтоб индексы не распухали".

[identity profile] vp.livejournal.com 2010-03-04 11:16 am (UTC)(link)
ГУИДы были забракованы, т.к. их глазами читать могут только инопланетяне.
Цель всех разработок - обеспечить беспроблемную отладку и сопровождение в будущем. И мне намного проще понять по десятичному числу, в котором младший разряд = "точка создания", чем пялиться в гуид или создавать еще одну сущность (хотя она есть) типа "где создана запись". Мы за хьюман читабельность по возможности всего :)

[identity profile] metaclass.livejournal.com 2010-03-04 11:36 am (UTC)(link)
А, там жыж надо как-то хитро их переворачивать, чтобы последовательность кошерная была для вставки в b-tree.
Но вроде сейчас уже это не поможет - микрософт какое-то дополнительное вуду-хэширование сделало для генератора гуидов.

(no subject)

[identity profile] enternet.livejournal.com - 2010-03-04 11:42 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2010-03-04 11:32 am (UTC)(link)
Там это сознательно нарушение заповеди. Чтобы не сойти с ума.

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

Дмитрий, ваша роль в околоинтербейзовом комьюнити должна, по идее, быть аналогична Тому Кайту. (Том Кайт - это такой ИИ, который завелся внутри оракла от переизбытка кода и поэтому всё о нем знает )

А вы паясничаете, по сути.

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

Да я специально этот тред завел только ради того, чтобы поделиться своим опытом с IB/Firebird. И я верю, что плохие решения должны умирать, а хорошие - жить. Надеюсь кто-нибудь прочитает это, и НЕ КУПИТ решение на базе IB. Вероятность низка, но тем не менее.

Ещё раз, не отвлекаясь, повторяем мантру все вместе: Interbase/Firebird - это некачественное, плоходокументированное, медленное, проблемное в эксплуатации семейство серверов.

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

С медленностью вопрос неясный. На данный момент у меня три варианта медленной работы: 1) устаревшая статистика индексов. Лечится однократным ее обновлением. 2) Загадочное поведение на некоторых виндовых серверах (на линуксах не пробовал, не знаю) - тупо работает в 5 раз медленнее чем на аналогичных машинах. В чем причина - то ли SATA контроллеру стиль работы не нравится, то ли диск сдыхает, то ли в FB что-то не то - не знаю. 3) Мой личный плющ - где то остается не завершенная транзакция и начинает расти разрыв между oldest snapshot и текущей транзакцией, из-за чего перестает собираться мусор и начинает тупить. При моих сотнях транзакций в секунду это быстро складывает сервер.
Я не знаю, что в таких случаях делают другие версионники - не пробовал.

[identity profile] enternet.livejournal.com 2010-03-04 11:40 am (UTC)(link)
Про SATA не знаю, а вот на вот на некоторых SCSI-контроллерах такая фигня была. Причем не на всех. У себя - всё нормально, а у заказчика прям было слышно по звуку как контроллер всё в пакеты раз в секунду отдавал.

[identity profile] interbase.livejournal.com 2010-03-04 12:11 pm (UTC)(link)
>тупо работает в 5 раз медленнее чем на аналогичных машинах.
включите Write Cache у контроллера диска. Выучите наконец эту область администрирования железа, освойте perfmon, что-ли.

[identity profile] metaclass.livejournal.com 2010-03-04 12:30 pm (UTC)(link)
Там траблы с чтением были.
Кстати, эта птица не на всех контроллерах включается, драйвера не дают вроде

[identity profile] interbase.livejournal.com 2010-03-04 01:09 pm (UTC)(link)
в драйверах SCSI это практически нигде не включается. Для raid контроллеров кроме драйверов нужно обязательно ставить программу управления этим контроллером. Потому что параметры контроллера управляются, как правило, только таким образом, по крайней мере под Windows.
Почему этот софт не ставят поставщики компов и админы-самосборщики - загадка.

Админы обычно скачут с бубном вокруг таких систем, лезут в биос, дрова, и естественно, ничего не находят. Правда, с добыванием софта, управляющего конкретным RAID, бывает цирк - в ноябре в одной конторе сутки не могли скачать его с hp.com. И что более загадочно, на диске с дровами этого софта тоже не было.

[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 - это что в виду имеется?

(no subject)

[identity profile] osdm.livejournal.com - 2010-03-04 15:46 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-03-04 17:10 (UTC) - Expand

(no subject)

[identity profile] osdm.livejournal.com - 2010-03-04 21:41 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-03-05 08:30 (UTC) - Expand

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

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

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

(no subject)

[identity profile] osdm.livejournal.com - 2010-03-04 16:06 (UTC) - Expand

(no subject)

[identity profile] enternet.livejournal.com - 2010-03-04 16:21 (UTC) - Expand

[identity profile] interbase.livejournal.com 2010-03-04 12:13 pm (UTC)(link)
>А вы паясничаете, по сути.
сейчас выясним, кто паясничает. Предлагаю посмотреть процедуру и ее 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

[identity profile] interbase.livejournal.com 2010-03-04 12:13 pm (UTC)(link)
форматирование убилось, к сожалению.

[identity profile] enternet.livejournal.com 2010-03-04 12:27 pm (UTC)(link)
Данный пример ничего не показывает кроме того, что в данном конкретном случае ссылки на план вроде бы нет.

Я не буду сейчас искать IB 4.0 или 4.2.

[identity profile] interbase.livejournal.com 2010-03-04 01:03 pm (UTC)(link)
>что в данном конкретном случае ссылки на план вроде бы нет.
я Вам уже процитировал, что план в процедуре будет только в том случае, если в ней запрос написать с явным планом.

>Я не буду сейчас искать IB 4.0 или 4.2.
чего искать-то. у меня на компе есть. Я как раз с 4.0 и увидел, что планов в процедурах нет. isql уже очень давно позволяет посмотреть blr процедур и триггеров.

(no subject)

[identity profile] enternet.livejournal.com - 2010-03-04 14:27 (UTC) - Expand

[identity profile] interbase.livejournal.com 2010-03-04 12:25 pm (UTC)(link)
на всякий случай, если не хотите читать blr:
http://www.ibase.ru/devinfo/ibmyths.htm
пункт 9
9. Скомпилированные процедуры хранят планы запросов

Ничего подобного (если только план запроса не задан явно). Данный миф основан на том, что процедура или триггер после первого вызова (и именно в этот момент вычисляются планы запросов, которые в процедуре написаны) остается в кэше метаданных до тех пор, пока все клиенты, вызывавшие эту процедуру, не отсоединятся. В этом случае действительно, пока процедура находится в памяти, планы запросов не меняются, даже если изменится статистика используемых планами индексов.

Добавлю, что да, у IB/FB есть недостатки, как и у любой другой РСУБД. Но. Если Вы работали с этой СУБД 10 лет назад, и не знаете НИЧЕГО о том, что за эти 10 лет поменялось, Вам не стоит
- транслировать старые баги или особенности на текущие версии
- думать, что за 10 лет ничего не изменилось

И, когда будете повторять ту свою "мантру", обязательно прибавляйте, с какой версией IB Вы работали, и как давно это было. А то может случиться, что Ваш оппонент будет очень даже в курсе свежих IB/FB, и в результате Вы будете выглядеть бледно.

Я если позволяю себе высказывания в адрес других РСУБД, то перед этим обычно проверяю документацию и форумы.