Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Есть задумка вызывать тригер только один раз за сессию (проверять при старте триггера, не вызывался ли он уже сегодня) Проверку сделать максимально простой чтобы не кушала время и ресурсы. Есть ли варианты писать сессионные переменные чтобы они шарились между разными вызовами триггера? В 2016 есть sp_set_session_context но мне нужна поддержка 2000 в худшем случае 2008 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 13:35 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
Таблица - лучшая переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 13:41 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
aleks222, Каждый раз её проверять на наличие записи с условиями (пользователь, дата) будет накладно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 13:44 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_aleks222, Каждый раз её проверять на наличие записи с условиями (пользователь, дата) будет накладно сессия же, ничего накладного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 13:49 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
TaPaK, Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:01 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_, что это? статическая таблийца SPID, Flag ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:05 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_Есть задумка вызывать тригер только один раз за сессию (проверять при старте триггера, не вызывался ли он уже сегодня)Так за сессию или за сегодня? Если за сессию, то добавьте в начало триггера примерно такое: Код: sql 1. 2. 3. 4. 5. 6. ЗЫ: Лучше бы решаемую задачу озвучили - может найдется не столь экзотический вариант решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:08 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
TaPaK_Groxot_, что это? статическая таблийца SPID, FlagА что, надёжный и простой способ, проще, чем со статической таблицей (там ещё нужно время создания сессии сохранять и сравнивать, да плюс помнить о блокировках) _Groxot_В 2016 есть sp_set_session_context но мне нужна поддержка 2000 в худшем случае 2008Ещё есть set context_info, работает во всех версиях. Итого, самые удобные варианты - либо временная таблица, либо context_info ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:11 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
авторЕсть задумка вызывать тригер только один раз за сессию (проверять при старте триггера, не вызывался ли он уже сегодня) сегодня и сессия на временных объектах не решить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:14 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
invm, сессия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:19 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
TaPaK, сегодня = в пределах текущей сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:20 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Какова вероятность что этот SET CONTEXT_INFO кто то потрет? Используют ли его, например ADO, в собственных целях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:22 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_invm, сессияТогла либо через context_info, либо как я показал. Через локальную временную таблицу не выйдет - помрет при завершении триггера. Через статическую таблицу - дополнительные приседания для ее очистки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:24 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
invm, временная глобальная с именем сессии судя по всему мой варинат, спасибо. контекст кто то трет у меня (Delphi компонент видать какой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:28 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
действительно, динамика + беконечное создание временных таблиц sql-ю понравится, особенно в тенденции проблем как раз с массовым созданием этих самых временных таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:39 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
TaPaKдействительно, динамика + беконечное создание временных таблиц sql-ю понравится, особенно в тенденции проблем как раз с массовым созданием этих самых временных таблиц Это фсе ерунда. На фоне connection pool и приложения, которое пользует этот connection pool. ЗЫ. Триггеры не должны зависеть от "сессии". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 14:48 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
aleks222, почему не должен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 15:12 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_alexeyvg, Какова вероятность что этот SET CONTEXT_INFO кто то потрет? Используют ли его, например ADO, в собственных целях?Нет, никто не использует. invmЧерез локальную временную таблицу не выйдет - помрет при завершении триггера.Понятно, это только если создавать её каждый раз при создании сессии на клиенте. Это, наверное, совсем не оптимально, разве что триггер срабатывает в каждой сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 18:57 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
alexeyvgПонятно, это только если создавать её каждый раз при создании сессии на клиенте.Тогда уж лучше постоянную таблицу. По крайней мере не будет зависеть от клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 19:51 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
invmalexeyvgПонятно, это только если создавать её каждый раз при создании сессии на клиенте.Тогда уж лучше постоянную таблицу. По крайней мере не будет зависеть от клиента.Это да. А ещё лучше - контекст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 20:08 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
alexeyvgА ещё лучше - контекст.Насколько я помню, добыть контекст на 2000-м было довольно затратно по времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 21:23 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
invmalexeyvgА ещё лучше - контекст.Насколько я помню, добыть контекст на 2000-м было довольно затратно по времени.Хм, вот что то не помню такого, хотя мы широко использовали, и к перформансу относились внимательно (даже если это было не нужно)... Кстати, контекст же можно получить не только функцией, но и из sysprocesses, может, что то из них работало быстро? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 01:05 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
_Groxot_Есть задумка вызывать тригер только один раз за сессию (проверять при старте триггера, не вызывался ли он уже сегодня) Проверку сделать максимально простой чтобы не кушала время и ресурсы. Если среда исполнения полностью контролируемая, нет сторонних разработчиков и доступно изменение инициализации сессии, то можно использовать такие варианты, если их настройка не повлияет на выполняемое до триггера. Запомнить предыдущее значение. Установить самом начале соединения свою "константу". В триггере проверить её. Потом вернуть предыдущее значение. Код: sql 1. 2. 3. или Код: sql 1. 2. 3. Производительность метода мне неизвестна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 09:44 |
|
||
|
Сессионные переменные в тригере
|
|||
|---|---|---|---|
|
#18+
alexeyvgХм, вот что то не помню такого, хотя мы широко использовали, и к перформансу относились внимательно (даже если это было не нужно)... Кстати, контекст же можно получить не только функцией, но и из sysprocesses, может, что то из них работало быстро?Да вот отложилось в памяти, что были проблемы с производительностью. А вот подробности не отложились :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39704286&tid=1689088]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 418ms |

| 0 / 0 |
