|
|
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
to GreenSunrise Забыть триггер можно совершенно запросто, как и процедуру, и таблицу. Все мы ошибаемся. Только если забыть таблицу, сразу появится ругань, а триггер - есть он или нет - сразу не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:56:42 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
Да точно! про бизнес-логику я и позабыл! (а стадо слонов я и не приметил) :((( Так вот: перед созданием БД: (по каждому пункту есть куча толстенных книжек) 1. Бизнес проект 2. Алгоритм поведения предприятия 2.1 Пути сбора информации 2.2 Сбор информации 2.3 Размещение информации 2.3.1 Фильтрация информации 2.3.2 Уникальность информации 2.3.3 ссылочная целостность информации 2.3.4 и еще одна (забыл какая) Так вот при размещении информации применяются правила и фильтры, а так же дефаулты. тонкость в том, что правило одно на таблицу, а фильтров и дефаултов сколько полей. Ключи, это тоже часть бизнес логики - отвечают за уникальность. Триггеры - это основное ~мобильное~ средство поддерживания бизнес правил и целостной логики поведенья!!! Если Вы планируете большую и !умную! БД то должны максимально использоваться триггеры т.к. триггер освобождает от рутины и тупых действий. Вот в этом зерно!!! А то как он работает ... быстро или не очень быстро это к конкретному криворукому программеру. :)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 06:04:38 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
2MarchCat Отлично сказано ("мобильность", "криворукость")! Мне в тригерах больше всего нравится именно мобильность - наглядно оформленные в виде коментированного/документированного кода бизнес-правила, сконцентрированные в одном месте - теле тригера. Насчет "тормознутости" системы с тригерами - а будьте аккуратны, пожайлуста, при программировании тригера - с курсорами, операциями с другими таблицами и все такое. По поводу "скрытости" тригеров, по сравнению с SP (эта по ходу обсуждения классифицируется как минус тригеров) - полезность этого качества №2 - представьте, что вам поручено разработать только серверную часть приложения, а клиентскую - кто-то другой. Самим, небось, кое-что спрятать захочется. Как иллюстрация, пример: расширения клиентских частей приложений при помощи таких средств, как проекты ACCESS (а что, клевые отчеты лабать можно). Такие задачи Вам, такому уважаемому и занятому DBA, решать как-то не с руки. А количество ваяющих на VBA сейчас можно сравнивать с тараканами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 08:31:05 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
Не согласен с тем, что триггеры это всегда тормоза, а также что это очень уж плохо. опять же надо смотреть, насколько часто и насколько большие объемы данных вливаются в таблицу. от этого и плясать. а то, что на них можно повесить кучу административной работы типа протоколирования, оповещения и т.п., не говоря уже о непосредственных изменениях данных, делает триггеры на мой взгляд очень удобным инструментом при создании бизнес-логики. забыть про триггер можно лишь в том случае, если система не разрабатывалась/воплощалась в код самостоятельно. Но в любом мало-мальски сложном проекте всегда "рисуются" потоки данных, а так же модификация этих данных на разных стадиях. Кроме того должна быть документация по проекту. Если этого нет, то тогда это уже указывает не на слабости триггеров, а на слабости программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 10:13:35 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
А мы об этом и балакаем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 10:27:08 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
Как выглядят ограничения на уровне колонки и таблицы мне понятно, нельзя ли поподробнее рассказать как в DB2 задаются ограничения на уровне СУБД. К сожалению цитирую себя сам, судя по всему я недостоин ответа. Скажите мне LeVo, что такое в реляционной теории ограничения на уровне столбца? (Может атрибута тогда уж?) А что такое ограничения на уровне таблицы? (Или отношения). Ну, ограничения на уровне БД я еще как то мог бы представить, но что такое ограниченя на уровне СУБД, соблаговолите все же объяснить раз уж начали, а то я тоже туману псевдонаучного могу напустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 21:02:37 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
Разрешите поделится опытом? Вначале проект делался примерно так (не буду вдаряться ) в подробности, но при проведении "проводок", шел некоторый , назовем его "бизнес - процесс" , который выполнялся в теле триггера. Все вроде ничего, тормозов особо сильных не наблюдалось, во всяком случае нас и клиента устраивало. Но был один режим - восстановление остатков, фактически восстановление базы , но из быкапа, а путем перепроводки. Вот тут , сервер , на 1 млн. записей, честно отработав 75% падал из - за нехватки памяти. Банально. Дело в том, что внутри тиггеров открывался курсор (и закрывался и деаллоцировался, все по уму). Но очевидно, память за собой не подчищал. Я только на голове не стоял, чтобы избавится от этого эффекта. Выход - написал процедурку(точнее 2), куда перенес всю обработку из 3 триггеров одной таблицы: выигрыш - по производительности, немного но приятно; перестало расти выделение памяти, просто нет и все. Вот такой эффект имеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2002, 12:07:09 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
2 all Люди, есть здесь знатоки DB2? Объясните мне плиз что такое ограничения на уровне СУБД, а то судя по всему LeVo меня игнорирует, либо сказать ему(ей) нечего. Это что, можно накладывать ограничения на данные в зависимости от данных в другой БД, или можно указать СУБД когда целостность проверять а когда нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2002, 11:08:40 |
|
||
|
Тригеры или хранимые процедуры ... ?
|
|||
|---|---|---|---|
|
#18+
Даа, большой топик! Решение о использовании триггеров или хп лежит на разработчике, если к твоей базе лезут из excel, мордодрома, access и еще бог знает чего (особенно с правами владельца) то рано или поздно что-нить не то изменят, удалят и т.п. С помощью триггеров и простенькой таблички аудита, ты всегда себя прикроешь. Что касается выражения "забыл триггер", дык тогда дело не в триггерах, а в голове. Да, кстати, юзер меняющий данные в какой-то таблице понятия может не иметь о хранимых процедурах, и не знать о триггере, но второй-всегда отработает. Констрэйнты не применяю, по причине неудобства использования их на этапе отладки. (Да и вобще, триггер когда надо можно отключить). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 19:53:03 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1820974]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 354ms |

| 0 / 0 |
