powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Trigger или StoredProcedure
4 сообщений из 4, страница 1 из 1
Trigger или StoredProcedure
    #32020051
Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто сталкивался? Подскажите.
Есть sp в которой проверяются условия и в зависимости от условия делается лидо insert или update в таблицу. Причем приходится выполнять много проверок.
А что если делать просто insert, а проверки делать в триггере? Какое решение оптимальнее с точки зрения работы БД?
...
Рейтинг: 0 / 0
Trigger или StoredProcedure
    #32020053
Pandre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все зависит от подробностей, но одно из правил: триггер должен выполнять лишь необходимый минимум операций, чтобы не блокировать таблицу лишнее время.
...
Рейтинг: 0 / 0
Trigger или StoredProcedure
    #32020057
Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подробности.
Каждый день надо запускать упомянутую SP, которая обсчитывает изменения и ставляет/обновляет результаты в БД. SP обсчивает примерно 100 тыс. и > записей, и вставляет/обновляет примерно столько же записей. Процедуру можно запускать, например ночью, когда с БД никто не работает.

Попутный вопрос. Нужно чтобы вся процедура пересчета выполнялась одной транзакцией. Т.е. обновить/вставить записи для всех, условно говоря "счетов" или ни для одного. Как поступить?
Открывать транзакцию -> запускать процедуру -> проверять -> закрывать транзакцию? Или есть другие варианты?
...
Рейтинг: 0 / 0
Trigger или StoredProcedure
    #32020106
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд триггеры оправдывают себя только в том случае, если доступ к таблицам возможен из различных приложений и при этом необходимо обеспечить логическую целостность БД. Если же БД 'закрытая' и доступ к данным обеспечивается только путем вызова хранимых процедур триггеры особо и не нужны. Кроме того использование триггеров в этом случае может привести к понижению производительности за счет:
а) возможной дополнительной обработки таблиц INSERTED, DELETED;
б) исключения возможности использования SQL Server-ом 'прямых' обновлений записей при UPDATE-ах.

А транзакцию правильней открывать, закрывать и откатывать в самой процедуре.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Trigger или StoredProcedure
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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