Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.06.2020, 09:40
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Есть база с таблицей, в которой примерно 30млн строк. База весит примерно 20 Гб. Создал триггер на обработку позиций и указал операцию в триггере "INSERT, UPDATE". триггер в определенном столбце выставляет значение NULL. теперь этот триггер я не могу остановить. Т.е. триггер начинает обрабатывать дынные, долго долго думая, пытаюсь через sql запрос (DROP TRIGGER или DISABLE TRIGGER) его остановить и сервак пишет что ожидает выполнение запроса и висит. При этом начинает рости tempdb, пока не закончится место на жестком диске (свободно 400 Гб). Через контекстное меню тоже не отключается триггер, система говорит "превышение тайм-аута блокировки". Предполагаю что из-за операции UPDATE, триггер начинает по кругу отрабатывать, а за счет большой базы грузится система и не проходят команды на остановку триггера. Подскажите другой способ вырубить (удалить) триггер? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 10:50
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87, kill в смысле, ты убей процесс который его использует, а потом делай с триггером что хочешь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 11:02
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
court, я и по kill сразу понял)) спасибо, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 11:09
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Триггеры - зло. Их сложно изменить на лету, т.к. большая вероятность дедлока. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 11:50
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
L_argo риггеры - зло. Их сложно изменить на лету, т.к. большая вероятность дедлока. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 11:51
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
invm L_argo риггеры - зло. Их сложно изменить на лету, т.к. большая вероятность дедлока. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 11:54
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
L_argo Раз в 50-100, ИМХО. И чем вызвана эта разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 12:07
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Hells87, Триггеры мощное средство но безусловно требуют квалификации и иногда трудно отлаживаются - траблшутятся @invm мне подсказывал способ как можно отключить триггер в конкетной сессиии с помощью трюка в начале триггера if exitsts ( #Tmp_triggers_disable) return и создания такой временной таблицы #Tmp_triggers_disable в начале сессии где надо отключить его ps для отлакди в тригере можно юзать те же Select pps вообщем подумать надо - если выбор за тобой - то возможно пока и отказаться от них ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 12:38
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Гулин Федор Hells87, Триггеры мощное средство но безусловно требуют квалификации и иногда трудно отлаживаются - траблшутятся @invm мне подсказывал способ как можно отключить триггер в конкетной сессиии с помощью трюка в начале триггера if exitsts ( #Tmp_triggers_disable) return и создания такой временной таблицы #Tmp_triggers_disable в начале сессии где надо отключить его ps для отлакди в тригере можно юзать те же Select pps вообщем подумать надо - если выбор за тобой - то возможно пока и отказаться от них На мой взгляд, триггер НЕ стоит вешать туда, где его предполагается включать/выключать. Сколько "стоит" стоит такая проверка (проверка наличия сторонней таблицы) в плане производительности? По теме: вероятно неправильно спроектирован триггер - так как заср@ть 400ГБ триггером, который в определенном столбце выставляет значение NULL по базе в 20 гиг, - это очень круто ! Хорошо, если на забитом диске sp_who2 работает и kill выполняется... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:25
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
court Hells87, kill в смысле, ты убей процесс который его использует, а потом делай с триггером что хочешь Попробовал, в списке сессий висит "среда MS SQL Server Management Studio". отдельной задачи по триггеру нет. так что нечего тут убивать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:27
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Гулин Федор Hells87, Триггеры мощное средство но безусловно требуют квалификации и иногда трудно отлаживаются - траблшутятся @invm мне подсказывал способ как можно отключить триггер в конкетной сессиии с помощью трюка в начале триггера if exitsts ( #Tmp_triggers_disable) return и создания такой временной таблицы #Tmp_triggers_disable в начале сессии где надо отключить его ps для отлакди в тригере можно юзать те же Select pps вообщем подумать надо - если выбор за тобой - то возможно пока и отказаться от них Так я этот триггер не могу поменять, потому что висит запрос. Выбор за мной, но сейчас задача долбануть этот триггер. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:45
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Hells87, А DISABLE TRIGGER не пробовали? На крайняк DROP TRIGGER авторТриггеры - зло! Согласен. Лучше JOB использовать и по отсечкам времени отрабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:48
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Нестандартное мышление, триггер нельзя отключить, пока он выполняется хотя бы в одном сеансе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:55
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Владислав Колосов Нестандартное мышление, триггер нельзя отключить, пока он выполняется хотя бы в одном сеансе. Можно остановить агента и в server_triggers поставить 1 в is_disabled. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 13:58
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
А вообще. Надо такую структуру менять. Либо мощности как у гугла уже закупать. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 14:18
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Нестандартное мышление Hells87, А DISABLE TRIGGER не пробовали? На крайняк DROP TRIGGER авторТриггеры - зло! Согласен. Лучше JOB использовать и по отсечкам времени отрабатывать. Пробовал. висит запрос и всё. Триггер видимо все ресурсы на себя забирает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 14:28
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
SIMPLicity_ Гулин Федор Hells87, Триггеры мощное средство но безусловно требуют квалификации и иногда трудно отлаживаются - траблшутятся @invm мне подсказывал способ как можно отключить триггер в конкетной сессиии с помощью трюка в начале триггера if exitsts ( #Tmp_triggers_disable) return и создания такой временной таблицы #Tmp_triggers_disable в начале сессии где надо отключить его ps для отлакди в тригере можно юзать те же Select pps вообщем подумать надо - если выбор за тобой - то возможно пока и отказаться от них На мой взгляд, триггер НЕ стоит вешать туда, где его предполагается включать/выключать. Сколько "стоит" стоит такая проверка (проверка наличия сторонней таблицы) в плане производительности? По теме: вероятно неправильно спроектирован триггер - так как заср@ть 400ГБ триггером, который в определенном столбце выставляет значение NULL по базе в 20 гиг, - это очень круто ! Хорошо, если на забитом диске sp_who2 работает и kill выполняется... В MSSQL есть смысл перед обновлением поля проверять, а не имеет ли это поле уже такое же значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 14:29
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87, Сейчас пробуем базу перенести с резервной базы (там нет этого триггера). Тогда еще вопрос: как тогда реализовать на базе MS SQL такую задачу? Внешняя прога складывает в таблицу значения, но необходимо, чтобы значения в определенном столбце удалялись. Либо надо триггер отладить, чтобы он работал только для новых записей, чтобы сервак не ложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 14:32
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
a_voronin, Согласен. Мало опыта работы с MSSQL. думал, ну не пойдет, отключу. А теперь отключить не получается. На маленькой базе всё работает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 14:52
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87 court Hells87, kill в смысле, ты убей процесс который его использует, а потом делай с триггером что хочешь О том, что в SSMS пользователь открыл транзакцию, сделал что то, на что срабатывает этот триггер, и задумался. Поэтому триггер и заблокирован. Посмотрите, кто это такой. Спросите у него, долго ли он будет держать открытой транзакцию. Заставьте закрыть окно, а если он скажет "а чо я ничо не делал", то сделайте kill этой сессии, она ему не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 15:02
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
alexeyvg, Ну я предположил, что эта студия бала в которой я и сидел. Так как на серваке были еще запущены БД, я их в службах стопнул и в списке сессий осталась одна эта запись (было 3) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 15:04
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87, Всем спасибо. Пока искали решение, коллега перекинул базу с резервного сервака (на котором нет этого триггера). Триггер так и не получилось стопнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 15:06
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87 Hells87, Тогда еще вопрос: как тогда реализовать на базе MS SQL такую задачу? Внешняя прога складывает в таблицу значения, но необходимо, чтобы значения в определенном столбце удалялись. Либо надо триггер отладить, чтобы он работал только для новых записей, чтобы сервак не ложить. Сейчас будем работать над этим вопросом ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 15:08
|
|||
---|---|---|---|
|
|||
Принудительное отключение триггера |
|||
#18+
Hells87 Hells87, Всем спасибо. Пока искали решение, коллега перекинул базу с резервного сервака (на котором нет этого триггера). Триггер так и не получилось стопнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 15:16
|
|||
---|---|---|---|
Принудительное отключение триггера |
|||
#18+
Hells87 alexeyvg, Ну я предположил, что эта студия бала в которой я и сидел. Так как на серваке были еще запущены БД, я их в службах стопнул и в списке сессий осталась одна эта запись (было 3) Вот и сделали бы kill, и всё бы получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1686042]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 152ms |
0 / 0 |