|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Не могу определиться, то ли это беда самого IBE, то ли от моего незнания true способа. Ситуация: база с "мясорубкой" данных: куча коротких транзакций на запись и чтение, постоянно чистка таблиц от устаревших записей. Иногда есть потребность просматривать живую базу через IBE. Но он, если открыть вкладку данных, стартует транзакцию и не закрывает ее - а значит, Oldest Tran. тормозится, сборка мусора задерживается, база пухнет, а в итоге приходит грозный sweep и подвешивает базу на полминуты. Можно в параметрах подключения сделать транзакции рид-онли, но это неудобно на тот случай, если вдруг понадобится что-то изменить. Настройки IBE облазил, ничего по теме не нашел. Это известная беда? Есть ли способы ее решения? FB 2.5, fb_inet_server.exe -s ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:35 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Параметры транзакций - дефолтные isc_tpb_read_committed isc_tpb_rec_version isc_tpb_nowait ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:37 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, Сделай транзакцию RC readonly для просмотра и будет тебе счастье ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:44 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Симонов Денис, яМожно в параметрах подключения сделать транзакции рид-онли, но это неудобно на тот случай, если вдруг понадобится что-то изменить К сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь. Но если это единственный вариант - что ж, придется юзать. Просто мне любопытно, удержание транзакции IBE-ом - это нормальное поведение? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:51 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalЭто известная беда? Есть ли способы ее решения?Беда известная. А решение простое, как 3 коп: в кроне 1 раз в NN минут стартует скрипт, который разыскивает в таблице mon$transactions запись по ОАТ: Код: sql 1.
И если при этом будут выполнены условия: 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). И если оно равно нулю, то срубаем её нахрен :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:52 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalК сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь. Но если это единственный вариант - что ж, придется юзать. В SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 18:56 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalЕсть ли способы ее решения?Не оставлять открытые окна с данными. Накой они нужны ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:04 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
IBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.а нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:05 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
hvladFr0sT-BrutalЕсть ли способы ее решения?Не оставлять открытые окна с данными. Накой они нужны ?Чел фактор. Окно с ИБЭ перекрыл чем-то более важным, начал затем в другом приложении работать - и всё, "ку-ку". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:06 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
ТаблоидА решение простое, как 3 коп Ага, что-то вроде этого приходило на ум, спасибо за конкретный скрипт! IBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре. Это хорошо, но я смотрю просто таблицы. Select * from %tablename%, конечно, вариант, но иногда хочется и разные таблицы посмотреть hvladНе оставлять открытые окна с данными. Накой они нужны ? Ну, может, кто-то и способен охватить всю инфу за 5 сек, а потом подгружать ее из мозгового свопа, но мне до такого сатори далеко :) На изучение данных уходит приличное время, за которое next tr успевает сильно оторваться от oldest tr ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:11 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
ТаблоидIBExpertВ SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре.а нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой). Сделать, наверное, можно. Смотря насколько это востребовано. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:13 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Таблоида нельзя ли добавить в св-ва базы / узел "транзакции" окошко с таймаутом, по истечению которого будет делаться автоматически коммит RW-транзакции, но только если в ней не было изменений (и рядом - второе окошко с таймаутом и роллбаком для RW-транзакции, СДЕЛАВШЕЙ изменения и не завершённой). А нельзя ли вообще принудительно сделать транзакции просмотра таблиц read only? Это ведь, насколько я успел понять, базовые требования к БД-программам, которые гуру талдычат уже лет десять: длинная RO для селекта и короткие RW для модификаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:14 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalЭто хорошо, но я смотрю просто таблицы. Ну и как ты себе представляешь короткую транзакцию в данном случае? Тащить все данные таблицы на клиента сразу при переходе на закладку Data? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:15 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
IBExpert, см. один пост выше ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:16 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-Brutalв итоге приходит грозный sweep и подвешивает базу на полминуты С чего ты взял, что он приходит? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:16 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalНа изучение данных уходит приличное время, за которое next tr успевает сильно оторваться от oldest trа какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ? Вот так примерно: Код: plaintext 1. 2. 3.
- и далее открывать уже в ИБЭ эту my_lucky_copy.fdb ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:19 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
IBExpertFr0sT-BrutalЭто хорошо, но я смотрю просто таблицы.Ну и как ты себе представляешь короткую транзакцию в данном случае? Тащить все данные таблицы на клиента сразу при переходе на закладку Data?КМК, он говорит про другое: все открытия вкладки 'Data' в объектах типа 'table' или 'view' делать в отдельной read_only read_committed транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:22 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalЭто ведь, насколько я успел понять, базовые требования к БД-программам, которые гуру талдычат уже лет десять: длинная RO для селекта и короткие RW для модификаций. Нет, это workaround для дебилов, которые не в состоянии научиться управлять транзакциями грамотно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:22 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovС чего ты взял, что он приходит? Не претендую на истину. Скорее, не совсем корректно выразился: тормозит не sweeper, а "команда сборки мусора", а именно select count(*) from %table_to_clean% ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:25 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Таблоида какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ? 30 мегов. Ну, тоже вариант, хотя зависит от частоты использования. Пока что она невелика, и легче что-то намутить на собственной машине, чем тягать бэкапы Dimitry SibiryakovНет, это workaround для дебилов, которые не в состоянии научиться управлять транзакциями грамотно. Окей, а как надо управлять транзакциями грамотно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:28 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalНе претендую на истину. Т.е. ты даже не в курсе, что свип пишет сообщения о своём старте и финише в firebird.log?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:29 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-Brutalтормозит не sweeper, а "команда сборки мусора", а именно select count(*) from %table_to_clean%Просмотри своё приложение: те режимы, которые удаляют много данных за какой-то период, и НЕ делают сразу после этого Код: sql 1.
- эгоисты и враги общества. Ибо за ними мусор будет убирать кто-то другой. Читай "Нечтение данных" на ibase.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:32 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-Brutalкак надо управлять транзакциями грамотно? Не делать их больше, чем необходимо по бизнес-правилам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:32 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalТаблоида какой размер у этой базейки ? может, есть смысл просто "живую копию" периодически делать ?30 мегов . Ну, тоже вариант, хотя зависит от частоты использования. Пока что она невелика, и легче что-то намутить на собственной машине, чем тягать бэкапыбгы... я и 30 гигов тягал, когда надо было - и ничего, никто даже не звонил. Сделай скрипт, положи его в меню "Пукс" и забудь про этот топег ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:34 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну забыл, с кем не бывает Таблоид, как раз после удаления сразу выполняю select count. Удаление происходит через определенное количество инсертов. Собственно, если базу не трогать, то все крутится замечательно, с кол-вом транзакций порядка 5-6 в секунду ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:35 |
|
|
start [/forum/topic.php?fid=42&fpage=35&tid=1599761]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 168ms |
0 / 0 |