Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поддержка ссылочной целосности [MSSQL2000]


Страницы:   1 2 3

Term ©   (2004-09-29 12:09:00) 

Как лучше сделать контроль ссылочной целостности
с помошью тригеров или
внешних ключей, почему спрашиваю тут мне сказали что задание RELATIONSHIPS типа не столь надёжно

вот и вкрались сомнения


KSergey   (2004-09-29 15:48:00) [41]

> А вот работа внешних ключей оптимизирована очень неплохо.

Применительно к MS SQL основная фраза. И пусть эти интербейзники не выпендриваются ;)) (шутка, если кто не понял)


АлексейК   (2004-09-29 14:50:00) [42]

В IB реализация триггеров другая (и на мой взгляд более удачная, с точки зрения программирования). В MSSQL нет триггеров ни after ни before. Триггеры в MS SQL Server срабатывают после обновления и один раз на оператор (а не на каждую обновленную запись). В триггере доступна обновленная таблица и две виртуальных таблицы Inserted и Deleted. Так что для доступа к записи я должен обратится к Inserted или Deleted. Правда в MSSQL2000 появился INSTEAD OF. А вот работа внешних ключей оптимизирована очень неплохо.


Johnmen   (2004-09-29 14:32:00) [43]

>АлексейК   (29.09.04 14:21) [9]

>Все таки заметно.

А я не замечаю - IB/FB. Но давно уверен, что у MSSQL много смешных проблем...:)


den_777   (2004-09-29 14:28:00) [44]


> Существует мнение, что поддержка триргерами более медленная
> (по идее так и есть, к сожалению, сам не проверял),

Проверял на СУБД INFORMIX, на большой базе при удалении большого числа записей.При времении удалении в 20 минут разница была в пару секунд, что наверняка можно списать на погрешность. Так что время должно быть одинаково так как в "нормальных" СУБД констрейнт это и есть системный триггер. Но как я уже писал у MSSQL совсем не похожая на другие СУБД реализация триггеров, так что для достоверности необходимо просто проэкспериментировать именно на MSSQL2000.


АлексейК   (2004-09-29 14:21:00) [45]

Johnmen ©   (29.09.04 14:09) [6]
>АлексейК   (29.09.04 13:51) [5]

Меньше. Но не значительно, это не разы и даже не десятки процентов...
:)


Все таки заметно. И потом еще что в триггере напишешь, а то и десятки "разов" могут получится.


sniknik   (2004-09-29 14:19:00) [46]

> потому что они не пишутся программистом.
;о)) а кем же они пишутся? наверное домохозяйками? ;о))

программистами они и пишутся, не прикладниками только, а теми кто ядро/обработку их писал.

p.s. не удержался ;), в принципе то ясно что хотел сказать.


Sergey13   (2004-09-29 14:13:00) [47]

Плюсы констрейнтов - они надежнее, потому что они не пишутся программистом. Минусы - не всегда хватает гибкости, ибо жизнь бывает сложнее.


Johnmen   (2004-09-29 14:09:00) [48]

>АлексейК   (29.09.04 13:51) [5]

Меньше. Но не значительно, это не разы и даже не десятки процентов...
:)


АлексейК   (2004-09-29 13:51:00) [49]

>Johnmen ©   (29.09.04 12:35) [4]
Значительно меньше.


Johnmen   (2004-09-29 12:35:00) [50]

>АлексейК   (29.09.04 12:33) [3]

А по твоему, как реализованы внешние ключи ?
И ты думаешь, они дополнительно не "нагружают" сервер ?


АлексейК   (2004-09-29 12:33:00) [51]

Триггеры и внешние ключи разные понятия, не стоит их смешивать в кучу. И естественно что тригеры дадут дополнительную нагрузку на сервер. И если есть возможность где-то обойтись без, то это может заметно повысить производительность системы.


Nikolay M.   (2004-09-29 12:16:00) [52]


> тут мне сказали что задание RELATIONSHIPS типа не столь
> надёжно

Бред какой-то.
Существует мнение, что поддержка триргерами более медленная (по идее так и есть, к сожалению, сам не проверял), но она же и более гибкая. Я лично генерю структуры базы CASE-ами, там все сводится к галочке, чем поддерживать целостность. Зато при необходимости можно дописать текст триггера на более сложную логику удаления + при желании вести логи событий.


Johnmen   (2004-09-29 12:12:00) [53]

>тут мне сказали

Аргументы были или просто трепались ?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо