Попросили тут знакомые люди помочь. Суть вопроса - есть некая программа, работающая с Firebird и что-то работает как-то в последнее время некорректно (называют конкретно в чём некорректность). Хотя до этого более трёх лет работала программа нормально. Врядли можно погрешить на саму прогу. Скорее с БД что-то не так. Ну, ладно, передали мне флешку с БД и сетапом проги (на всякий случай). Смотрю. Действительно БД создана в FB 1.5 Открываю базу в IB Expert и что вижу? Набор таблиц. Правда еще PK имеются... И больше... НИ-ЧЕ-ГО! Ни генераторов, ни триггеров, ни UDF-функций... Полная пустота... Я уже начинаю потихоньку прифигевать, но запускаю IB Analyser... "Жевал" он получение статистики минут 15... Прожевал... Размер страницы 1024. Forced Write OFF. Индексы на 4-9 страниц! В общем полный караул. Причём дилема - увеличить размер страницы? Так там есть две таблицы с фрагментированными BLOB, и увеличение приведёт к еще бОльшей фрагментации

Всё-таки решил увеличить страницу до 4096 и включить FW. Бэкап-рестор, все дела... Из интереса поставил саму прогу, и попробовал работать со старой базой, и с "новой" - после вышеизложенных операций. На глаз скорость работы различается на порядок практически. Где в старой БД приходилось ждать 10 сек. для открытия списка документов, в "новой" это занимает ~1 секунду.
Может быть можно оправдать такую "структуру" БД тем, что программа вроде бы может работать и с Paradox и с FB? Но, господа!!! Эта программа стоит... около 10000 евро!!! Я понимаю, что БД это еще не вся программа, что там своя логика (и довольно сложная), но всё же, мне кажется это немного не правильным... Кстати, все юзеры (прога сетевая) работают под SYSDBA, с дополнительным указанием уже "своего эккаунта" (для контроля создателя документа видимо). Kак люди без генераторов получают уникальные значения для PK - для меня загадка, особенно в сетевом режиме. Нет, финты конечно придумать можно, но ЗАЧЕМ?!? А индекс в одной таблице меня вообще убил - составной индекс по... ВСЕМ полям. Для пущей уникальности, так сказать... Зачем суррогатные ключи делать? Проиндексировал по связке всех полей, и спи спокойно...
Вот так... И работает! В своей области это фактически единственная программа, по крайней мере одна из самых распространённых. Называть не буду, но может кто и узнает по описанию...
Может я дурак, что сижу, структурв данных выдумываю, какие-то суррогатные ключи, какие-то FK и прочая, прочая... ? А тут люди вот так лабают...?