|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Гавриленко Сергей АлексеевичВарианты, которые имею право на жизнь: loopback linked server Service Broker CLR Мы протестили у себя, в наших условиях с небольшим отрывом по производительности победил CLR (на нем и сделали). Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2015, 19:35 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Спасибо. Погуглю еще по CLR. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2015, 10:18 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Минус CLR в том, что он требует привлечения С# разработчика ( и его рабочего времени ) и соответствующих инструментов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2015, 11:40 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Гавриленко Сергей АлексеевичВарианты, которые имею право на жизнь:
за последние 5 лет ничего не поменялось? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 17:38 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR. за последние 5 лет ничего не поменялось? Extended Events ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 17:42 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
PizzaPizza mezzanine _human, Простите, а как это поможет решить проблему с откатом транзакции и необходимостью комита записей лога (все это в одной транзакции)? Because table variables have limited scope and aren't part of the persistent database, transaction rollbacks don't affect them. Делайте свой велосипед на переменных. Ну или почитайте как это делается обычно. ЗЫ. Ой блин, некропост прокомментировал ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 20:35 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
mezzanine _human, Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут. 1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката. 2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 09:16 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
L_argo mezzanine _human, Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут. 1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката. 2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 09:21 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
msLex andreymx пропущено... коллеги, за последние 5 лет ничего не поменялось? Extended Events ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 09:23 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx L_argo пропущено... Есть такая проблема. Ее можно решить: 1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката. 2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:11 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx msLex пропущено... Extended Events К сожалению, нет. Но общий смысл, логирование делается не изнутри модуля (процедура, триггер), а снаружи, через extended event сессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:37 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR. за последние 5 лет ничего не поменялось? Надо еще подождать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:51 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
L_argo mezzanine _human, Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут. 1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката. 2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается. 3. Очереди брокера? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:52 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx а есть примерчик реализации логов на Extended Events посмотреть? Только в отличие от 17329722 , придется сделать отдельный джоб или еще что-то по разгребанию и перекладыванию результатов трассировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:53 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
L_argo andreymx пропущено... второй вариант кажется слишком геморным а можно какой-то алгоритм набросать в пяти строчках? например: вызывающая процедура создала таблицу-переменную и заполнила первый шаг вызываемая процедура заполнила второй шаг триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?) и т.д. спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:55 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx, если копать так глубоко, что путь с sp_trace_generateevent (уведомления о событиях) наилучший, т. к. сбор данных о событиях выполняется асинхронно с работой процедур. Требуемые данные вместе с временем появления "заворачиваете" в XML и выбрасываете в событие. Затем сборщик читает очередь событий и помещает данные в таблицу. "Оформлять" придется индивидуально каждую процедуру, если наборы данных будут отличаться, например, захотите сохранить значения переменных, имена открытых курсоров, снимок состояния сессий и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 11:59 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
а можно какой-то алгоритм набросать в пяти строчках? например: вызывающая процедура создала таблицу-переменную и заполнила первый шаг вызываемая процедура заполнила второй шаг триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?) и т.д.Я наполнял временные таблицы (из триггера видимы), а потом, в случае роллбека, заполнял табличную переменную, которая не откатывалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:38 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
L_argo а можно какой-то алгоритм набросать в пяти строчках? например: вызывающая процедура создала таблицу-переменную и заполнила первый шаг вызываемая процедура заполнила второй шаг триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?) и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:39 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx L_argo пропущено... Я наполнял временные таблицы (из триггера видимы), а потом, в случае роллбека, заполнял табличную переменную, которая не откатывалась. Данный подход плох тем, что: а) часть ошибок переводит транзакцию в разряд нефиксируемых, после чего любые операции, которые требуют записи в лог, отваливаются с соответсвующим егогом, а запсиь в табличные переменные как раз требует записи в лог б) в некоторых ситуациях (высокое severity, kill или дамп сессии, дамп сервера, свет закончился и т.п.) до catch дело не дойдет вовсе Т.е. во всех описанных выше случаях лог будет потерян, а с другими средствами логирования хотя бы какую-то часть его можно было бы сохранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:47 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, А можно увидеть текст твоей clr? Конечно, без имён таблиц и инсертов Вы там сессиями как управляете? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 20:05 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx Гавриленко Сергей Алексеевич, А можно увидеть текст твоей clr? Конечно, без имён таблиц и инсертов Вы там сессиями как управляете? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 22:20 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
А как организовано хранение буфера? Через какой-нибудь статик? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 23:53 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
andreymx А как организовано хранение буфера? Через какой-нибудь статик? А что - статики можно безнаказанно использовать в SQLCLR процедурах? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 08:44 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
авторДанный подход плох тем, чтоДа. Знаю. Основная задача была отлавливать ошибки бизнес-логики, н-р превышение товарного лимита, остатков и т.д. Часть из них хоть и можно было ловить до начала транзакции проведения документа, но это намного сложнее и оверхеднее. Ошибки обрыва коннекта и так нормально выскакивали. Ценность их логирования невысокая. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 09:20 |
|
Логирование хранимых процедур
|
|||
---|---|---|---|
#18+
Ролг Хупин andreymx А как организовано хранение буфера? Через какой-нибудь статик? А что - статики можно безнаказанно использовать в SQLCLR процедурах? потому и задал вопрос, возможно, некорректный ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 09:44 |
|
|
start [/forum/topic.php?fid=46&msg=39979570&tid=1685869]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 158ms |
0 / 0 |