|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dimitrкстати, последнее время я все больше склоняюсь к тому, чтобы имитировать уровень изоляции рабочей транзакции. Т.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции. мб стоит добавить дополнительный параметр для RC транзакции, чтобы контролировать это поведение? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 09:42 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dimitrТ.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции. и что тебя подталкивает сделать этот сомнительный шаг? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 09:49 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
kdvи что тебя подталкивает сделать этот сомнительный шаг? :-) как минимум мониторить можно будет одной "вечной" RC read-only транзакцией, не терзая понапрасну счетчик. Да и в целом, более логично будет поведение выглядеть. А если по уму сделать, то еще и в процедурах станет возможным использование "живых" данных мониторинга, а не "замороженных". альтернатива - оставить все как есть и реализовать явный "сброс" мониторинга (через SQL) для текущей транзакции. Правда, меня пугают возможные извраты типа: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 10:26 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
kdv dimitrТ.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции. и что тебя подталкивает сделать этот сомнительный шаг? :-)Сомнительно сделали как раз в ИБ, мы пока что только скопировали эту особенность. Но она нам не нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:03 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
авторНо она нам не нравится. вообще мне тоже не нравится что для получения обновленной информации надо рестартовать транзакцию. Но с другой стороны имеющиеся тулзы, да и вообще, ориентированы на получение связанной информации - БД-коннекты-транзакции-запросы. То есть, логически было бы хорошо стартовать RC read only, и перечитыванием запроса получать обновления, но тогда не будет консистентности таблиц. А раз надо - придется стартовать снапшот-транзакцию, и все равно рестартовать ее когда надо обновить инфу. Тогда, по большому счету, вычитка данных таблиц мониторинга в RC read only теряет смысл. Так что я за совместимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:22 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
arniНаглядность и интуитивность кода на уровне "взглянул - понял" - тоже чего-то стоит, пусть и в ущерб кол-ву строк. Наглядность и интуитивность - вещи весьма субъективные. А длина - она и в Африке длина ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:23 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
я бы пока за ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:24 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
моб ять. так вот. я бы пока за isc_refresh_mon_info проголосовал. Т.е. за вызов api. а дальше можно поглядеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:25 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dimitr Код: plaintext 1.
Если всё будет в автомате, то получить стабильный снимок мониторинга можно будет только "правильной" транзакцией. Если дать возможность управлять, то это может быть лучше в плане контроля разработчиком. например: процедура_1 прочитала некоторые мониторинговые данные и вызвала процедуру_2 процедура_2 сделала DROP MONITORING SNAPSHOT и вернула управление процедуре_1 процедура_1 запросила другие таблицы мониторинга и "налетела" на несогласованность. Если кого такой вариант не устроит могут использовать автономки. Минус действительно видится один - счётчик дёргается с вытекающими. 2kdv Добавление вызова API мне нравится. Но процедуркам оно разобраться между собой не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:30 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Николай1> У меня есть "buffer-compare" - это оператор языка "У меня" - это в где? И оператор какого языка? Николай1> Остается извлечь значения этих полей их каждого буфера и сложить куда надо. Зачем? Сравнивать, извлекать... они итак уже "извлечены" в new и old. ;) Posted via ActualForum NNTP Server 1.4 4GL В смысле "извлечены" ? Буферы содержат все поля, а сохранить в аудите надо только те, которые изменились. buffer-compare и дает их список. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:51 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
авторМинус действительно видится один - счётчик дёргается с вытекающими. у нас в IBTM (Transaction Monitor) идет считывание состояния транзакций (OIT, OST, OAT, Next) каждую минуту. Если делать через services api - старта транзакций нет, но нет и инфы о реальном числе активных транзакций. Firebird API - увеличивает счетчик Next +1 Firebird mon$ и IB tmp$ - требуется старт транзакции, т.е. тоже Next +1 Так вот. Даже если с БД ничего не делают, Next+1 за сутки (!) растет всего на 1440 отсчетов (минут в сутках). На мой взгляд это полная фигня по сравнению с любой минимально активной системой, в которой нынче количество транзакций за рабочие сутки начинается минимум от 15000. В среднем - 200к транзакций в сутки. У "гигантов" - 500к и более. Так что рестарт транзакции для снятия инфы каждую минуту - фигня. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 12:24 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
и еще - отсчет для tmp$ (пока mon$ не поддерживается) делается так: коннект старт транзакции получение данных из tmp$ коммит дисконнект для этой задачи держать открытым коннект, да еще транзакцию активной, пусть даже и rc read only - считаю моветоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 12:32 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
kdvи еще - отсчет для tmp$ (пока mon$ не поддерживается) делается так: коннект старт транзакции получение данных из tmp$ коммит дисконнект для этой задачи держать открытым коннект, да еще транзакцию активной, пусть даже и rc read only - считаю моветоном.Для этой задачи - может быть. Но не в общем случае. Когда сервер загружен так, что мыша не проползает, и нужно быстро прибить виновника, ты не сможешь даже получить коннект в приемлемое время. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 13:01 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
kdvТак что рестарт транзакции для снятия инфы каждую минуту - фигня. Согласен. Для снятия статистики - фигня. Но для предложенного варианта получения имени текущего объекта, совсем не фигня. Если хотя бы половина объектов, задействованных в пользовательском запросе, будут порождать автономки, то это минимум рост счётчика в разы, а реально и в десятки раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 13:32 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dimitrкстати, последнее время я все больше склоняюсь к тому, чтобы имитировать уровень изоляции рабочей транзакции. Т.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции.+1 Я бы даже предложил забить на эту согласованность данных (это же не реальные данные, а данные мониторинга), хотя это кому-то покажется крамолой. Нехай будет RC-read (хотя это больше похоже на dirty read ;-) ). А различные "DROP MONITORING" считаю ненужным извращением. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:11 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Николай1В смысле "извлечены" ?Находятся в этой структуре. Николай1Буферы содержат все поля, а сохранить в аудите надо только те, которые изменились. buffer-compare и дает их список.Решать, что сохранять, а что нет должен не компарер, а автор механизма логирования. Это, во-первых. Во-вторых, все эти сравнения и "выборка только измененных" по времени, очень вероятн, что уступят простому копированию (правда выиграет по занимаемому месту). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:14 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
afgmX11 Вопрос в следующем. Может спустя столько лет появилась возможность узнать имя таблицы для которой срабатывает триггер? Может это будет в версии 2.х или 3.х? В 2.5 будет можно. Примерно так: ... Правда на данной стадии разработки на данном запросе Firebird-2.5.0.20542-0_Win32 валится Сейчас попробовал (версия 2.5.0.22796) - все работает! Так что если добавить преддложенную товарищем KiLLun строчку Код: plaintext 1.
C уважением Александр ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2009, 12:18 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dedRasta[quot afgm][quot X11] Сейчас попробовал (версия 2.5.0.22796) - все работает! Не могу найти 2.5.0. 22796 или выше для Windows. Не подскажите ли? Уже минут сорок в гугле и в гугл-группах ищу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 14:48 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
X11Не могу найти 2.5.0. 22796 или выше для Windows. Не подскажите ли? Уже минут сорок в гугле и в гугл-группах ищу. http://firebirdsql.org/download/snapshot_builds/win/ http://193.110.114.157/firebird/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 14:55 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
X11 , а на официальном сайте смотреть не пробовал?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 14:58 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Ура, нашёл http://firebirdsql.org/downloads/snapshot_builds/win/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:26 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
zirra, Искал конечно же. Но там только альфа 1, не знаю, где твоя ссылка живёт на офиц. сайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:27 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
И на офиц. сайте тоже нашёл, спасибо. Windows 32-bit / 64-bit v.2.1.x and v.2.5 (HEAD) Просто меня смутило слово HEAD в названии ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:30 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Код нерабочий, ругается на procname Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:34 |
|
|
start [/forum/topic.php?fid=40&msg=35894042&tid=1561295]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 477ms |
0 / 0 |