Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Триггер или процедура?  [new]
Meriguan
Member

Откуда:
Сообщений: 124
Добрый день!

У меня в компании триггера используются редко, в основном все изменения делаются через автоматические процедуры(Job).

Пример: Есть некая таблица с полем Is_Created. В поле Is_Created(признак создания некого перемещения товара) стоит значение 0, это значение проверяет автоматическая процедура и создает перемещение(вставка строки в другую таблицу), после чего соответственно изменяет признак на 1.

Думаю реализовывать такие вставки через триггера(допустим от 2-х до 5-ти триггеров на одну таблицу), это ясно замедлит встаку данных в таблицу.

Какой способ вы бы выбрали?
27 мар 12, 12:45    [12319660]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Meriguan,
Все зависит на сколько критично время создания перемещения ,с помощью триггеров это будет делаться синхронно,с помощью job'ов пытаются достичь асинхронности.
Meriguan
допустим от 2-х до 5-ти триггеров на одну таблицу
этого не надо допускать...максимум по одному на insert, update, delete.
Meriguan
это ясно замедлит вставку данных в таблицу
и не только, увеличится продолжительность транзакции,могут появится блокировки.
Вообще про использование триггеров надо думать в последнюю очередь.
27 мар 12, 13:10    [12319883]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Meriguan
Какой способ вы бы выбрали?
Который нужен для реализации бизнес-логики. Тут Job и триггеры сравнить нельзя.

А вот для немедленного изменения можно использовать не только триггеры, но и процедцры. Я выбираю их, а триггеры использую только для контроля целостности и, возмжно, для очень ограниченной реализации бизнес-логики (типа поддержания агрегатных таблиц или логирования).
27 мар 12, 13:13    [12319909]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
Meriguan
Member

Откуда:
Сообщений: 124
Создание перемещение сразу не критично, можно создавать каждые 5-10 минут.

На счет триггеров 2-5, это да загнул, точно по одному на I, U, D.

Почему такой вопрос возник.

Наша компания(не разработка софта) купила программу у вроде бы нормальной девелопной компании, посмотрел их структуру базы, там стабильно на каждой таблице триггер, а то и два, используются в основном для целосности данных. Но встречаются так же и вставки в другие таблицы.
27 мар 12, 13:21    [12320014]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Meriguan,
а почему "вроде бы нормальную девелопную компанию" не попросить что-то доделать в этой системе?
27 мар 12, 13:25    [12320052]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
Meriguan
Member

Откуда:
Сообщений: 124
denis2710
Meriguan,
а почему "вроде бы нормальную девелопную компанию" не попросить что-то доделать в этой системе?


То что купили, то работает(сервис деск).
Это другая самописная программа(для работы склада).
27 мар 12, 13:36    [12320164]     Ответить | Цитировать Сообщить модератору
 Re: Триггер или процедура?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Meriguan,
ну так вопрос то еще вопрос то вроде решенный.Если
Meriguan
можно создавать каждые 5-10 минут

То смысл использовать триггер вовсе пропадает.
27 мар 12, 14:28    [12320650]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить