|
Просматривать базы в 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 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalУдаление происходит через определенное количество инсертов.Настораживает. Какое-то "легкомысленное" отношение к данным: вставили - поглядели (а зачем еще их тогда вставляли ?) - грохнули. Там GTT случайно не подойдёт ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:37 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНе делать их больше, чем необходимо по бизнес-правилам. Холмс и Ватсон летят на воздушном шаре, их снесло ветром и они не знают, где находятся. Ватсон: - Холмс, там внизу человек! Холмс: - Ватсон, спросите его, где мы находимся. - Эй, человек, где мы находимся? Человек смотрит вверх и кричит: - На воздушном шаре! Холмс: - Это программист. - Черт возьми Холмс, как вы догадались? - Элементарно, Ватсон. Он дал абсолютно точный, но совершенно бесполезный ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:40 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
ТаблоидНастораживает. Какое-то "легкомысленное" отношение к данным: вставили - поглядели (а зачем еще их тогда вставляли ?) - грохнули. Там GTT случайно не подойдёт ? Не-не, там все нормально. В базе фактически поток, соответственно хранится буфер самых свежих данных, а устаревшее чистится. GTT, к сожалению, не подходят, т.к. transaction-bound or connection-bound ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:43 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalВ базе фактически поток, соответственно хранится буфер самых свежих данных, а устаревшее чистится. GTT, к сожалению, не подходят, т.к. transaction-bound or connection-boundЕсли она не в режиме 24ч, то устройте чистку в "технологическое окно" (ночером), перед свипом. Инсертам ваше открытое в ИБЭ окно будет до лампады. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:47 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Собственно, инфу о том, что проблема не только у меня, я получил, пару решений разной степени костыльности тоже нашлось. Всем спасибо за внимание :) Отдельный респект Таблоиду за конкретику! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 19:51 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalВ базе фактически поток, соответственно хранится буфер самых свежих данных, а устаревшее чистится. Это работа не для классических РСУБД, а для какого-нибудь NoSQL. Неверный выбор средства detected. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 20:24 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
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 не поможет. См. выше о том, что читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2013, 12:36 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
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 выполняется для обеспечения нормального режима работы, тогда как наличие тормозной активной транзакции - случай нештатный. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 12:12 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
IBExpertFr0sT-BrutalК сожалению, нет раздельного задания view и modify транзакций, поэтому каждый раз жонглировать параметрами не слишком удобно. Ну или заводить по две реги на каждую базу, RW и RO - вариант, но у меня и так их уже четыре одинаковых на разных машинах, в восьми точно запутаюсь. Но если это единственный вариант - что ж, придется юзать. В SQL редакторе уровень изоляции транзакции меняется из выпадающей менюшки на тулбаре. А можно сделать так, чтобы была возможность указать в настройках уровень изоляции транзакции по умолчанию для вновь открываемых окон sql editor? Ну или другой вариант, чтобы выбранное в этой менюшке значение запоминалось между закрытием/открытием окна редактора? Сейчас, при открытии у меня постоянно: Read Commited, RW (build 2014.3.24.1) Модератор: Тема перенесена из форума "Firebird, InterBase". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2014, 08:59 |
|
Просматривать базы в IBE, не подвешивая Oldest Tran.
|
|||
---|---|---|---|
#18+
AtanasА можно сделать так, чтобы была возможность указать в настройках уровень изоляции транзакции по умолчанию для вновь открываемых окон sql editor? Есть глобальные настройки уровней транзакций, есть настройки на уровне базы. Отдельно для sql редактора настроек нет, он использует настройки транзакций для работы с ДАННЫМИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2014, 14:06 |
|
|
start [/forum/topic.php?all=1&fid=42&tid=1599761]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 183ms |
0 / 0 |