powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Просматривать базы в IBE, не подвешивая Oldest Tran.
35 сообщений из 35, показаны все 2 страниц
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497580
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу определиться, то ли это беда самого IBE, то ли от моего незнания true способа.
Ситуация: база с "мясорубкой" данных: куча коротких транзакций на запись и чтение, постоянно чистка таблиц от устаревших записей. Иногда есть потребность просматривать живую базу через IBE. Но он, если открыть вкладку данных, стартует транзакцию и не закрывает ее - а значит, Oldest Tran. тормозится, сборка мусора задерживается, база пухнет, а в итоге приходит грозный sweep и подвешивает базу на полминуты. Можно в параметрах подключения сделать транзакции рид-онли, но это неудобно на тот случай, если вдруг понадобится что-то изменить. Настройки IBE облазил, ничего по теме не нашел.
Это известная беда? Есть ли способы ее решения?
FB 2.5, fb_inet_server.exe -s
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497581
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметры транзакций - дефолтные
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_nowait
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497586
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal,

Сделай транзакцию RC readonly для просмотра и будет тебе счастье
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497589
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

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

К сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь.
Но если это единственный вариант - что ж, придется юзать.

Просто мне любопытно, удержание транзакции IBE-ом - это нормальное поведение?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497591
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalЭто известная беда? Есть ли способы ее решения?Беда известная.

А решение простое, как 3 коп: в кроне 1 раз в NN минут стартует скрипт, который разыскивает в таблице mon$transactions запись по ОАТ:
Код: sql
1.
mon$transactions.mon$transaction_id = mon$database.mon$oldest_active


И если при этом будут выполнены условия:
1) mon$database.next_transaction - mon$database.mon$oldest_active > 300000 (или другого какого-то числа для ваших реалий)
2) длительность найденной ОАТ: datediff( minute from mon$attachments.mon$timestamp to cast('now' as timestamp) ) больше 120 минут
3) mon$attachments.mon$tremote_process для этой транзакции NOT in ('gbak', 'gfix', 'replserver', <еще_чего-то_служебное>)
- то далее смотрим на кол-во insert/update/delete-операций, выполненных в этой транзакции (mon$record_stats, соединить с mon$transactions по mon$stat_id).

И если оно равно нулю, то срубаем её нахрен :-)
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497595
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalК сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь.
Но если это единственный вариант - что ж, придется юзать.

В SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497604
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalЕсть ли способы ее решения?Не оставлять открытые окна с данными. Накой они нужны ?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497605
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.а нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой).
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497607
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladFr0sT-BrutalЕсть ли способы ее решения?Не оставлять открытые окна с данными. Накой они нужны ?Чел фактор. Окно с ИБЭ перекрыл чем-то более важным, начал затем в другом приложении работать - и всё, "ку-ку".
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497612
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидА решение простое, как 3 коп
Ага, что-то вроде этого приходило на ум, спасибо за конкретный скрипт!
IBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.
Это хорошо, но я смотрю просто таблицы. Select * from %tablename%, конечно, вариант, но иногда хочется и разные таблицы посмотреть
hvladНе оставлять открытые окна с данными. Накой они нужны ?
Ну, может, кто-то и способен охватить всю инфу за 5 сек, а потом подгружать ее из мозгового свопа, но мне до такого сатори далеко :) На изучение данных уходит приличное время, за которое next tr успевает сильно оторваться от oldest tr
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497617
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидIBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.а нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой).

Сделать, наверное, можно. Смотря насколько это востребовано.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497618
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоида нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой).
А нельзя ли вообще принудительно сделать транзакции просмотра таблиц read only? Это ведь, насколько я успел понять, базовые требования к БД-программам, которые гуру талдычат уже лет десять: длинная RO для селекта и короткие RW для модификаций.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497619
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalЭто хорошо, но я смотрю просто таблицы.

Ну и как ты себе представляешь короткую транзакцию в данном случае? Тащить все данные таблицы на клиента сразу при переходе на закладку Data?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497622
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

см. один пост выше
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497623
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalв итоге приходит грозный sweep и подвешивает базу на полминуты

С чего ты взял, что он приходит?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497624
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalНа изучение данных уходит приличное время, за которое next tr успевает сильно оторваться от oldest trа какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ? Вот так примерно:

Код: plaintext
1.
2.
3.
nbackup -L my_poor_production.fdb
cp my_poor_production.fdb my_lucky_copy.fdb
nbackup -N my_poor_production.fdb
nbackup -F my_lucky_copy.fdb

- и далее открывать уже в ИБЭ эту my_lucky_copy.fdb ?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497626
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertFr0sT-BrutalЭто хорошо, но я смотрю просто таблицы.Ну и как ты себе представляешь короткую транзакцию в данном случае? Тащить все данные таблицы на клиента сразу при переходе на закладку Data?КМК, он говорит про другое: все открытия вкладки 'Data' в объектах типа 'table' или 'view' делать в отдельной read_only read_committed транзакции.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497627
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalЭто ведь, насколько я успел понять, базовые требования к БД-программам,
которые гуру талдычат уже лет десять: длинная RO для селекта и короткие RW для
модификаций.
Нет, это workaround для дебилов, которые не в состоянии научиться управлять транзакциями
грамотно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497632
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovС чего ты взял, что он приходит?

Не претендую на истину. Скорее, не совсем корректно выразился: тормозит не sweeper, а "команда сборки мусора", а именно select count(*) from %table_to_clean%
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497635
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоида какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ?
30 мегов. Ну, тоже вариант, хотя зависит от частоты использования. Пока что она невелика, и легче что-то намутить на собственной машине, чем тягать бэкапы
Dimitry SibiryakovНет, это workaround для дебилов, которые не в состоянии научиться управлять транзакциями
грамотно.

Окей, а как надо управлять транзакциями грамотно?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497637
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalНе претендую на истину.
Т.е. ты даже не в курсе, что свип пишет сообщения о своём старте и финише в firebird.log?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497641
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalтормозит не sweeper, а "команда сборки мусора", а именно select count(*) from %table_to_clean%Просмотри своё приложение: те режимы, которые удаляют много данных за какой-то период, и НЕ делают сразу после этого
Код: sql
1.
select count(*) from some_table where doc_date between <этот же период>

- эгоисты и враги общества. Ибо за ними мусор будет убирать кто-то другой. Читай "Нечтение данных" на ibase.ru
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497642
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalкак надо управлять транзакциями грамотно?
Не делать их больше, чем необходимо по бизнес-правилам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497646
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalТаблоида какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ?30 мегов . Ну, тоже вариант, хотя зависит от частоты использования. Пока что она невелика, и легче что-то намутить на собственной машине, чем тягать бэкапыбгы... я и 30 гигов тягал, когда надо было - и ничего, никто даже не звонил.
Сделай скрипт, положи его в меню "Пукс" и забудь про этот топег
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497647
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

ну забыл, с кем не бывает

Таблоид,

как раз после удаления сразу выполняю select count. Удаление происходит через определенное количество инсертов. Собственно, если базу не трогать, то все крутится замечательно, с кол-вом транзакций порядка 5-6 в секунду
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497649
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalУдаление происходит через определенное количество инсертов.Настораживает. Какое-то "легкомысленное" отношение к данным: вставили - поглядели (а зачем еще их тогда вставляли ?) - грохнули. Там GTT случайно не подойдёт ?
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497651
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovНе делать их больше, чем необходимо по бизнес-правилам.

Холмс и Ватсон летят на воздушном шаре, их снесло ветром и они не
знают, где находятся.
Ватсон:
- Холмс, там внизу человек!
Холмс:
- Ватсон, спросите его, где мы находимся.
- Эй, человек, где мы находимся?
Человек смотрит вверх и кричит:
- На воздушном шаре!
Холмс:
- Это программист.
- Черт возьми Холмс, как вы догадались?
- Элементарно, Ватсон. Он дал абсолютно точный, но совершенно бесполезный ответ.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497655
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидНастораживает. Какое-то "легкомысленное" отношение к данным: вставили - поглядели (а зачем еще их тогда вставляли ?) - грохнули. Там GTT случайно не подойдёт ?
Не-не, там все нормально. В базе фактически поток, соответственно хранится буфер самых свежих данных, а устаревшее чистится. GTT, к сожалению, не подходят, т.к. transaction-bound or connection-bound
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497657
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalВ базе фактически поток, соответственно хранится буфер самых свежих данных, а устаревшее чистится. GTT, к сожалению, не подходят, т.к. transaction-bound or connection-boundЕсли она не в режиме 24ч, то устройте чистку в "технологическое окно" (ночером), перед свипом. Инсертам ваше открытое в ИБЭ окно будет до лампады.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497659
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, инфу о том, что проблема не только у меня, я получил, пару решений разной степени костыльности тоже нашлось. Всем спасибо за внимание :) Отдельный респект Таблоиду за конкретику!
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38497693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalВ базе фактически поток, соответственно хранится буфер самых свежих
данных, а устаревшее чистится.
Это работа не для классических РСУБД, а для какого-нибудь NoSQL. Неверный выбор средства
detected.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38500793
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalтормозит не sweeper, а "команда сборки мусора", а именно select count(*) from %table_to_clean%
читать на ibase.ru про версии, сборку мусор, sweep и прочее, срочно.
Fr0sT-BrutalОкей, а как надо управлять транзакциями грамотно?
про это написано во второй половине http://www.ibase.ru/devinfo/ibx.htm
Fr0sT-Brutalкак раз после удаления сразу выполняю select count.
чешуя. Ибо если есть активная транзакция, стартовавшая до удаления, select count не поможет. См. выше о том, что читать.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38520332
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvпро это написано во второй половине http://www.ibase.ru/devinfo/ibx.htm
Читаю
статьяТранзакции должны быть максимально короткими, независимо от условий задачи. Вы можете спросить - а как же просмотр данных, или ввод большой "карточки"? Здесь есть два исключения - в Firebird с 1.0 и InterBase с 6.0 транзакции read read_committed rec_version - они стартуют сразу в "завершенном" состоянии, поэтому могут длиться вечно (без необходимости commit/rollback и без влияния на накопление или сборку мусора).

...

Многие разработчики уже поняли этот недостаток, и действуют не по следующей схеме
StartTransaction;
IBDataSet.Edit; // вход в режим редактирования
ожидание ввода пользователя
IBDataSet.Post; // отправка результатов редактирования на сервер
Commit;

А по другой:

получаем данные из DataSet, прицепленного к читающей транзакции ожидаем ввод пользователя в компонентах TEdit и т.п. по нажатию кнопки "Сохранить"
StartTransaction
IBDataSet.Edit;
// заполняем столбцы или параметры запроса данными из обычных контролов
IBDataSet.Post;
Commit;

Собственно, это же я говорил ранее
ядлинная RO для селекта и короткие RW для модификаций.
что сударь ДС заклеймил обидными словами. На предложение поделиться мудростью он, впрочем, ответил невразумительной отпиской.
kdvчешуя. Ибо если есть активная транзакция, стартовавшая до удаления, select count не поможет. См. выше о том, что читать.
Отнюдь не чешуя. ХП не знает, есть ли в данный момент активная транзакция или нет (для формалистов: ХП не из-под sysdba) - да это и не нужно. И select count выполняется для обеспечения нормального режима работы, тогда как наличие тормозной активной транзакции - случай нештатный.
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38595346
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertFr0sT-BrutalК сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь.
Но если это единственный вариант - что ж, придется юзать.

В SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.

А можно сделать так, чтобы была возможность указать в настройках уровень изоляции транзакции по умолчанию для вновь открываемых окон sql editor?
Ну или другой вариант, чтобы выбранное в этой менюшке значение запоминалось между закрытием/открытием окна редактора? Сейчас, при открытии у меня постоянно: Read Commited, RW (build 2014.3.24.1)

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
Просматривать базы в IBE, не подвешивая Oldest Tran.
    #38595719
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasА можно сделать так, чтобы была возможность указать в настройках уровень изоляции транзакции по умолчанию для вновь открываемых окон sql editor?

Есть глобальные настройки уровней транзакций, есть настройки на уровне базы.
Отдельно для sql редактора настроек нет, он использует настройки транзакций для работы с ДАННЫМИ.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Просматривать базы в IBE, не подвешивая Oldest Tran.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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