powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Логирование хранимых процедур
61 сообщений из 61, показаны все 3 страниц
Логирование хранимых процедур
    #39097830
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.
Хотелось бы иметь возможность логирования процесса выполнения хранимых процедур. Например есть процедура "Proc1" которая внутри себя вызывает еще некоторое количество процедур. В них хочу писать что-то вроде "log.Info('....'); log.Error('...')". Потом по таким вещам легко находить проблемы в бизнес логике, конечно если она на T-SQL, а в моем случае это так.
В Оракле использовал фреймворк "Log 4 pl/sql" отличная поделка, допиливалась под нужды. Под MS SQL не смог найти :(
Отсутствие автономных транзакций вообще завело меня в тупик :(
Поделитесь опытом.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39097837
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39097881
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Идея интересная. Но как-то чересчур использовать очереди для логирования.

Честно говоря удивлен скудностью функционала, это для версии 2014. В Оракле такие штуки уже не помню сколько лет существуют. Это я так, взгрустнул :)
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39097931
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanine,

просто включить аудит?
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098004
Jovanny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
RAISERROR ... WITH LOG

- как вариант.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098038
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
Jovanny
Код: sql
1.
RAISERROR ... WITH LOG

- как вариант.
Only a member of the sysadmin fixed server role or a user with ALTER TRACE permissions can specify WITH LOG.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098128
mezzanineinvm,

Идея интересная. Но как-то чересчур использовать очереди для логирования.

Какие очереди? Там про sp_trace_generateevent, это собственно и есть генерация пользовательского лога.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098130
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
человек_ниоткуда,

Такие очереди:
Код: sql
1.
create queue dbo.qSimpleAudit
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098132
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanineИдея интересная. Но как-то чересчур использовать очереди для логирования.Есть какие-то объективные критерии для такой оценки?
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098137
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как писал выше идея в том чтоб логировать бизнес процессы. Идея не новая и широко применяется. Запускается джобом процедура, допустим закрытие дня. Она вызывает много других процедур и естественным требованием должно быть ее полное выполнение (комит) или при ошибке полный откат. После вызова N процедур получить просто exception не выход. Логи в автономной транзакции дают возможность гарантировано получить так сказать мой стек вызова.

Аудит. С его помощью можно контролировать что в процедуре будет логироваться? Например добавление записи типом "Warning" и из 10 входящих параметров залогировать только 3 нужных ну и в таком духе.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098144
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Моих нет. Только читал статью как строили репликацию на очереди и были недовольны стабильностью и скоростью.
Как-то много лишних телодвижений, заворачиваем сообщение в XML, отправляется в очередь, процедура выгребает данные из очереди, разворачивает сообщение и наконец то вставляет в таблицу лога.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098208
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanineТолько читал статью как строили репликацию на очереди и были недовольны стабильностью и скоростью.Не допускаете, что авторы просто что-то неправильно делают?
mezzanineКак-то много лишних телодвижений, заворачиваем сообщение в XML, отправляется в очередь, процедура выгребает данные из очереди, разворачивает сообщение и наконец то вставляет в таблицу лога.Вам предложен механизм асинхронного логирования, позволяющий легко включать/выключать и, при желании, пренаправлять логирование на другой сервер/БД, при этом ничего не меняя в коде.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098260
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanine,

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

Идея интересная. Но как-то чересчур использовать очереди для логирования.

Честно говоря удивлен скудностью функционала, это для версии 2014. В Оракле такие штуки уже не помню сколько лет существуют. Это я так, взгрустнул :)

В каком смысле - чересчур? В статье описан штатный внетранзакционный механизм. Тот же "оракловский фреймворк", только вид сбоку.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098502
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_human,

Так и хочется сделать. Проблемы в транзакциях. При rollback-е процедуры бизнес логики все логи также исчезнут.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098510
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Вполне возможно. Спасибо за предложенный вариант. Буду прикручивать к базе, посмотрю как работает.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098524
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно когда нибудь внедрят автономные транзакции, тикет с 2007 года активный Add support for autonomous transactions .
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098526
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanine,

в CATCH можно все отловить. Так же можно заглягуть в лог БД fn_dblog(null,null) за доп. инфо.
Полезная вью - sys.dm_tran_active_transactions
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098542
mezzanine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_human,

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

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

1. Канешно, кажется удобным наличие возможности журналирования...
2. Но если подумать - это навроде говнокода. Журналы то копятся - место и время жрут.
3. Для запуска транзакции и получения ошибки ПОВТОРНО для анализа достаточно журналировать только ИСХОДНЫЕ параметры транзакции. Что, очевидным образом, можно сделать ВНЕ транзакции.
4. При ошибке просто запускаем транзакцию заново с этими параметрами и лицезреем ошибку.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098579
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks21. Канешно, кажется удобным наличие возможности журналирования... Очень удобно. Иногда полезно логировать всякие штуки, типа времени выполнения конкретного стейтмента и кол-во зааффекченных записей.
aleks22. Но если подумать - это навроде говнокода. Журналы то копятся - место и время жрут.О да, проблема. Решается банальным Sliding Window.
aleks23. Для запуска транзакции и получения ошибки ПОВТОРНО для анализа достаточно журналировать только ИСХОДНЫЕ параметры транзакции. Что, очевидным образом, можно сделать ВНЕ транзакции.
4. При ошибке просто запускаем транзакцию заново с этими параметрами и лицезреем ошибку.Ошибка может быть time-related или еще какая related, а исходными данными может быть буфер на 10кк записей.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098599
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно прикрутить механизм DCT для ограничения времени хранения.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098601
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TDC, то есть.
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098806
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mezzanineВозможно когда нибудь внедрят автономные транзакции, тикет с 2007 года активный Add support for autonomous transactions .

вроде мне расказыали про фокус как это можно реализовать в SQL-server
сделав линк-сервер сам на себя
и делая DML Через его
- но подробностей не скажу
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #39098837
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты, которые имею право на жизнь:
loopback linked server

Service Broker

CLR

Мы протестили у себя, в наших условиях с небольшим отрывом по производительности победил CLR (на нем и сделали).
...
Рейтинг: 0 / 0
Логирование хранимых процедур
    #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
    Логирование хранимых процедур
        #39980259
    Ролг Хупин
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    Ролг Хупин
    пропущено...


    А что - статики можно безнаказанно использовать в SQLCLR процедурах?
    к сожалению, опыта в написании и сопровождении clr не имею
    потому и задал вопрос, возможно, некорректный


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


    А что - статики можно безнаказанно использовать в SQLCLR процедурах?


    Для логирования через clr, в любом случае нужно делать unsafe сборку, т.к. открывается новый коннекте.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980270
    msLex
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx,

    А какой поток данных лога ожидается? Если это единицы записей в секунду, то хватит прямой записи по одной строке из clr без буфферизации. Делаете статик поле с коннектом, инициализируете при первом обращении, а потом просто проверяете, что соединение открыто.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980295
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    msLex
    andreymx,

    А какой поток данных лога ожидается? Если это единицы записей в секунду, то хватит прямой записи по одной строке из clr без буфферизации. Делаете статик поле с коннектом, инициализируете при первом обращении, а потом просто проверяете, что соединение открыто.
    всё-таки статик можно
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980314
    msLex
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx
    msLex
    andreymx,

    А какой поток данных лога ожидается? Если это единицы записей в секунду, то хватит прямой записи по одной строке из clr без буфферизации. Делаете статик поле с коннектом, инициализируете при первом обращении, а потом просто проверяете, что соединение открыто.
    всё-таки статик можно

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

    авторвсё-таки статик можно
    Не только можно, но и нужно. Например, можно буферизировать справочные таблицы и использовать CLR функции при сложных математических вычислениях. Статические объекты не будут выгружены после выполнения и любой сеанс будет иметь доступ к этим данным. Таким способом можно организовать совместимые и несовместимые блокировки процессов, использующих общий словарь, например.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980400
    Ролг Хупин
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Владислав Колосов
    andreymx,

    авторвсё-таки статик можно

    Не только можно, но и нужно. Например, можно буферизировать справочные таблицы и использовать CLR функции при сложных математических вычислениях. Статические объекты не будут выгружены после выполнения и любой сеанс будет иметь доступ к этим данным. Таким способом можно организовать совместимые и несовместимые блокировки процессов, использующих общий словарь, например.

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

    авторвсё-таки статик можно

    Не только можно, но и нужно. Например, можно буферизировать справочные таблицы и использовать CLR функции при сложных математических вычислениях. Статические объекты не будут выгружены после выполнения и любой сеанс будет иметь доступ к этим данным. Таким способом можно организовать совместимые и несовместимые блокировки процессов, использующих общий словарь, например.интересно

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

    пропущено...

    Не только можно, но и нужно. Например, можно буферизировать справочные таблицы и использовать CLR функции при сложных математических вычислениях. Статические объекты не будут выгружены после выполнения и любой сеанс будет иметь доступ к этим данным. Таким способом можно организовать совместимые и несовместимые блокировки процессов, использующих общий словарь, например.
    интересно

    что произойдёт при переключении между репликами

    Сборка "поднимется" с нуля.
    Т.е. пройдет через стадию инициализации.
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980444
    andreymx
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    1. а если 100/500/10000 инсертов в сек по всем юзерам без кеширования?
    1.1 Меня эти глобальные переменные не вдохновляют
    1.2 только один экземпляр функции запускается?
    ...
    Рейтинг: 0 / 0
    Логирование хранимых процедур
        #39980461
    felix_ff
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    andreymx,

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


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