powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Недостатки в FB 2.5
25 сообщений из 31, страница 1 из 2
Недостатки в FB 2.5
    #38949436
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Давно уже мучаюсь с такои проблемой - FB 2.5 CS с работающими юзерами.
Есть таблица А и таблица Б. Не выгоняя юзеров надо в таблице Б поставить
Foreign Key на таблицу А и тут получается какой то deadlock, вроде, а то таблица
А как бы залокировается и не один юзер уже не может туда ничего добавить
и сам Foreign Key тоже неставится, какбы друг на друга ждут и всё ... копец :(
Ето вроде как бы логично если в таблице Б были какие то записи, но она ПУСТАЯ ...

Кто в курсе - в троике что-что такое исправлялось ?

WBR
Janex
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949444
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janex,

wait в транзакции указывал?
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949492
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JanexНе выгоняя юзеров надо в таблице Б поставить
Foreign Key на таблицу А
Может лучше это все описать фактами? DDL таблиц и запросы.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949498
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JanexДавно уже мучаюсь с такои проблемой - FB 2.5 CS с работающими юзерами.Это задокументированное поведение. менять метаданные надо монопольно.

pastorwait в транзакции указывал?Для ПК не поможет. Для хранимок, да, помогает грубо вкорячить, что само по себе не очень хорошо и может привести к веселым артефактам из-за кэширования метаданных.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949515
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorJanex,

wait в транзакции указывал?

Стоит в експерте по дефаулту:
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_nowait

Имееш в виду убрать isc_tpb_nowait или что ?


pastorIvan_Pisarevsky ,
Это задокументированное поведение. менять метаданные надо монопольно.
Понемаю, что так правильнее, но если таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал) то такие блокировки как бы неадекватны
и очень сильно мешает ставить мелкие обновления :(
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949529
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то давно, когда FB ещё не было и в планах, кто-то где-то решил, что создавать FK можно только в единственном монопольном эксклюзивном коннекте.
И так оно и было, можете проверить IB6\FB1.
При этом, этот кто-то не озаботился целостностью обычного (не-FK) индекса, и в результате было возможно построить индекс без учета ключей, вставленных
в таблицу во время построения индекса.

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

Это было реализовано в FB 2.0, IIRC, и с тех пор все успели забыть про требование эксклюзивного коннекта для построения FK.

Теперь к конкретике. FB блокирует таблицу от изменений перед началом построения индекса.
Такая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.
Время ожидания блокировки есть лок-таймаут тр-ции, в корой выполняется DDL.
В случае индекса для FK блокируются две таблицы.
Если блокировка (блокировки) взяты успешно, то теперь уже остальные тр-ции, которые хотят сделать insert\update\delete,
будут ждать окончания построения индекса (FK).
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949530
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JanexИмееш в виду убрать isc_tpb_nowait или что ?заменить на isc_tpb_wait
JanexПонемаю, что так правильнееСам же понимаешь, и тем не менее хочешь запретного. :)
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949531
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janexесли таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал)То никаких проблем с ней не будет.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949532
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyменять метаданные надо монопольно.Не все и не всегда - не сгущай краски
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949535
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТакая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.Если база в работе, то обеспечить такое на практике можно тотальным дисконнектом всех клиентов которые цепляют эту таблицу, что от монопольного коннекта не очень и далеко.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949539
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНе все и не всегда - не сгущай краскиЯ просто о том пути, который даст гарантированно правильный и ожидаемый результат. Но как всегда все мы грешны, и я тоже.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949550
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladJanexесли таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал)То никаких проблем с ней не будет.
Ну да, и нету проблем, но проблема что блокируется таблица НА КОТОРУЮ указывает FK, и
тут вопрос - какого хрена если таблица В КОТОРОЙ ставится FK пустая и некто с неи неработает?
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949553
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janexтут вопрос - какого хрена
hvladВ случае индекса для FK блокируются две таблицы.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949573
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВ случае индекса для FK блокируются две таблицы.
Ну ето понятно, и 100% правильно если с обоями таблицами ктото работает.
Но согласитесь что правильнее было бы так:
Блокируется таблицу В которои ставится FK и если она пустая, то
вторая таблица НЕблокируется.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949579
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyhvladТакая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.Если база в работе, то обеспечить такое на практике можно тотальным дисконнектом всех клиентов которые цепляют эту таблицу, что от монопольного коннекта не очень и далеко.Прости, но глупость говоришь. Если тр-ции в клиенте бесконечные - то, да, DDL будет ждать бесконечно.
Иначе - нужный момент обязательно наступит.
Ибо блокировки берутся в порядке очереди, а не как попало.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949582
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janex,

нет проблем с блокировкой пустой таблицы. Прочитай ещё раз то, что я написал выше.
Обрати внимание не только на знаки препинания, но и на такие слова как "блокировать на чтение ", "блокировка от изменения ".
Я верю, у тебя получится :)
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949597
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladJanex,

нет проблем с блокировкой пустой таблицы. Прочитай ещё раз то, что я написал выше.
Обрати внимание не только на знаки препинания, но и на такие слова как "блокировать на чтение ", "блокировка от изменения ".
Я верю, у тебя получится :)
Я понимаю, но с таблицей интенсивно работают куча людей и трансакции длится
до пара минут и не даи Бог кто то забыл нажать кнопку Commit и пошел покурить ...
Ожидание на завершение трансакции может затянутся и когда кто то попробует
внести изменения и не получится, то сразу будет звонки и ...
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949602
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПрости, но глупость говоришь.Не глупость, а предположение пессимистического сценария, что впрочем парой постов ниже подтвердилось.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949682
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janex,

переделывай так чтобы транзакции били короткими
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949714
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисJanex,

переделывай так чтобы транзакции били короткими
Ето невозможно ...
Я в принципе искал поддержку идеи что не надо блокировать таблицу если
на нее делают FK из пустои таблицы, типо: "Да, Janex, идея хорошая,
надо ввести в трекер" :)

Я бы мог ето ввести в трекер, но толку если ето мне одному интересно :(
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949734
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janexкто то забыл нажать кнопку CommitЯ плакалъ.
Ты же не первый год на форуме - ну как можно так писать программы ???
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949737
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JanexЯ в принципе искал поддержку идеи что не надо блокировать таблицу если
на нее делают FK из пустои таблицыАргументы где ?
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949740
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyhvladПрости, но глупость говоришь.Не глупость, а предположение пессимистического сценария, что впрочем парой постов ниже подтвердилось.Глупость, подтверждённая другой глупостью...
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949746
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Janex,

да вноси ты в трекер что угодно. Только не надейся, что это сделают в ближайшее время и даже в 3.0.
В принципе в MSSQL есть какая-то фишка с создание индекса онлайн. Только обходится оно не дешёво в плане ресурсов.
...
Рейтинг: 0 / 0
Недостатки в FB 2.5
    #38949831
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladJanexкто то забыл нажать кнопку CommitЯ плакалъ.
Ты же не первый год на форуме - ну как можно так писать программы ???
Абсолютно невижу ничего неправильного. Ето дело вкуса или могут бить и другие
причины по которым ето или правильно или удобно.
У меня юзеры, в большинстве, женьшини в возрасте, которые не совсем дружит с компютерами,
и ето удобно, если могут отменить свои деиствия если чёто напутали.
Можно конешно и по другому, но етот вариант для меня более удобный.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Недостатки в FB 2.5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]