powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Логирование хранимых процедур
25 сообщений из 61, страница 2 из 3
Логирование хранимых процедур
    #39098845
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичВарианты, которые имею право на жизнь:
loopback linked server

Service Broker

CLR

Мы протестили у себя, в наших условиях с небольшим отрывом по производительности победил CLR (на нем и сделали).
Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39099248
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

Спасибо. Погуглю еще по CLR.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39099355
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минус CLR в том, что он требует привлечения С# разработчика ( и его рабочего времени ) и соответствующих инструментов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Логирование хранимых процедур
    #39979570
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
Гавриленко Сергей АлексеевичВарианты, которые имею право на жизнь:
  • loopback linked server
  • Service Broker
  • CLR
  • Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR.коллеги,

    за последние 5 лет ничего не поменялось?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979573
    msLex
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    Гавриленко Сергей Алексеевич
    пропущено...
    Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR.
    коллеги,

    за последние 5 лет ничего не поменялось?


    Extended Events
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979637
    PizzaPizza
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    PizzaPizza
    mezzanine
    _human,

    Простите, а как это поможет решить проблему с откатом транзакции и необходимостью комита записей лога (все это в одной транзакции)?


    Because table variables have limited scope and aren't part of the persistent database, transaction rollbacks don't affect them.

    Делайте свой велосипед на переменных. Ну или почитайте как это делается обычно.


    ЗЫ. Ой блин, некропост прокомментировал
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979726
    L_argo
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    mezzanine
    _human,

    Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут.
    Есть такая проблема. Ее можно решить:
    1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката.
    2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979730
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    L_argo
    mezzanine
    _human,

    Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут.
    Есть такая проблема. Ее можно решить:
    1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката.
    2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается.
    второй вариант кажется слишком геморным
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979732
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    msLex
    andreymx
    пропущено...
    коллеги,

    за последние 5 лет ничего не поменялось?


    Extended Events
    а есть примерчик реализации логов на Extended Events посмотреть?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979759
    L_argo
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    L_argo
    пропущено...
    Есть такая проблема. Ее можно решить:
    1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката.
    2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается.
    второй вариант кажется слишком геморным
    Но он довольно гибкий. Можно наполнять несколько таблиц, н-р список проблемных документов и список проблемных позиций в этих документах.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979774
    msLex
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    msLex
    пропущено...


    Extended Events
    а есть примерчик реализации логов на Extended Events посмотреть?

    К сожалению, нет.


    Но общий смысл, логирование делается не изнутри модуля (процедура, триггер), а снаружи, через extended event сессию.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979782
    Ролг Хупин
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    Гавриленко Сергей Алексеевич
    пропущено...
    Вернее, я наврал немного. CLR и SB были примерно одинаковы, чтобы не заморачиваться с последним, выбрали CLR.
    коллеги,

    за последние 5 лет ничего не поменялось?


    Надо еще подождать
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979785
    Ролг Хупин
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    L_argo
    mezzanine
    _human,

    Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут.
    Есть такая проблема. Ее можно решить:
    1. С помощью CLR-сборок. Она создаст отдельный коннект и там все сохранит без отката.
    2. С помощью переменных и таблиц-переменных. Их содержимое не откатывается.



    3. Очереди брокера?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979787
    invm
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    а есть примерчик реализации логов на Extended Events посмотреть?
    Примерчика нет. Но основано будет все на той же sp_trace_generateevent.
    Только в отличие от 17329722 , придется сделать отдельный джоб или еще что-то по разгребанию и перекладыванию результатов трассировки.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979790
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    L_argo
    andreymx
    пропущено...
    второй вариант кажется слишком геморным
    Но он довольно гибкий. Можно наполнять несколько таблиц, н-р список проблемных документов и список проблемных позиций в этих документах.



    а можно какой-то алгоритм набросать в пяти строчках?

    например:
    вызывающая процедура создала таблицу-переменную и заполнила первый шаг
    вызываемая процедура заполнила второй шаг
    триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?)
    и т.д.

    спасибо
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979832
    Владислав Колосов
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx,

    если копать так глубоко, что путь с sp_trace_generateevent (уведомления о событиях) наилучший, т. к. сбор данных о событиях выполняется асинхронно с работой процедур. Требуемые данные вместе с временем появления "заворачиваете" в XML и выбрасываете в событие. Затем сборщик читает очередь событий и помещает данные в таблицу. "Оформлять" придется индивидуально каждую процедуру, если наборы данных будут отличаться, например, захотите сохранить значения переменных, имена открытых курсоров, снимок состояния сессий и так далее.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39979863
    L_argo
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    а можно какой-то алгоритм набросать в пяти строчках?

    например:
    вызывающая процедура создала таблицу-переменную и заполнила первый шаг
    вызываемая процедура заполнила второй шаг
    триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?)
    и т.д.Я наполнял временные таблицы (из триггера видимы), а потом, в случае роллбека, заполнял табличную переменную, которая не откатывалась.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980055
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    L_argo
    а можно какой-то алгоритм набросать в пяти строчках?

    например:
    вызывающая процедура создала таблицу-переменную и заполнила первый шаг
    вызываемая процедура заполнила второй шаг
    триггер заполнил третий шаг (кстати, как он увидит таблицу-переменную?)
    и т.д.
    Я наполнял временные таблицы (из триггера видимы), а потом, в случае роллбека, заполнял табличную переменную, которая не откатывалась.а временные таблицы роллбеком разве не откатываются?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980061
    Гавриленко Сергей Алексеевич
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    L_argo
    пропущено...
    Я наполнял временные таблицы (из триггера видимы), а потом, в случае роллбека, заполнял табличную переменную, которая не откатывалась.
    а временные таблицы роллбеком разве не откатываются?
    Видимо, речь идет о том, что в catch идет переливка лога из времянки в табличную переменную и роллбэк.

    Данный подход плох тем, что:

    а) часть ошибок переводит транзакцию в разряд нефиксируемых, после чего любые операции, которые требуют записи в лог, отваливаются с соответсвующим егогом, а запсиь в табличные переменные как раз требует записи в лог
    б) в некоторых ситуациях (высокое severity, kill или дамп сессии, дамп сервера, свет закончился и т.п.) до catch дело не дойдет вовсе

    Т.е. во всех описанных выше случаях лог будет потерян, а с другими средствами логирования хотя бы какую-то часть его можно было бы сохранить.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980137
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Гавриленко Сергей Алексеевич,

    А можно увидеть текст твоей clr?
    Конечно, без имён таблиц и инсертов

    Вы там сессиями как управляете?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980178
    Гавриленко Сергей Алексеевич
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    Гавриленко Сергей Алексеевич,

    А можно увидеть текст твоей clr?
    Конечно, без имён таблиц и инсертов

    Вы там сессиями как управляете?
    Сорян, исходники показывать не разрешают. Но суть в том, что все события лога валятся сначала в буфер в памяти, потом по времени или по переполнению буфера скидывается балком в таблицу лога. Пока происходит в таблицу, события лога скидываются в следующий буфер.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980197
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    А как организовано хранение буфера? Через какой-нибудь статик?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980235
    Ролг Хупин
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    А как организовано хранение буфера? Через какой-нибудь статик?


    А что - статики можно безнаказанно использовать в SQLCLR процедурах?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980248
    L_argo
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    авторДанный подход плох тем, чтоДа. Знаю. Основная задача была отлавливать ошибки бизнес-логики, н-р превышение товарного лимита, остатков и т.д.
    Часть из них хоть и можно было ловить до начала транзакции проведения документа, но это намного сложнее и оверхеднее.

    Ошибки обрыва коннекта и так нормально выскакивали. Ценность их логирования невысокая. :)
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980257
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Ролг Хупин
    andreymx
    А как организовано хранение буфера? Через какой-нибудь статик?


    А что - статики можно безнаказанно использовать в SQLCLR процедурах?
    к сожалению, опыта в написании и сопровождении clr не имею
    потому и задал вопрос, возможно, некорректный
    ...
    Рейтинг: 0 / 0
    25 сообщений из 61, страница 2 из 3
    Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Логирование хранимых процедур
    Целевая тема:
    Создать новую тему:
    Автор:
    Закрыть
    Цитировать
    Найденые пользователи ...
    Разблокировать пользователей ...
    Читали форум (0):
    Пользователи онлайн (0):
    x
    x
    Закрыть


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