powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Просматривать базы в IBE, не подвешивая Oldest Tran.
25 сообщений из 35, страница 1 из 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
25 сообщений из 35, страница 1 из 2
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Просматривать базы в IBE, не подвешивая Oldest Tran.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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