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

Откуда: Саратов
Сообщений: 487
Имеется master-таблица и куча связанных с ней внешними ключами detail-таблиц.
Имеет ли механизм внешних ключей с каскадным удалением какое-то преимущество в производительности по сравнению с предварительной ручной очисткой всех detail-таблиц?

По идее, если проводить ручное удаление, то быстрее вообще не использовать внешние ключи?

Чем так плохо каскадное удаление, кроме возможности случайно удалить кучу связанных записей?

Увеличит ли производительность каскадного удаления наличие индексов по FK в detail-таблицах (с одной стороны увеличиться скорость поиска, но с другой стороны нужно перестраивать сами индексы)?
22 июн 12, 12:00    [12758814]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Шамиль Фаридович
По идее, если проводить ручное удаление, то быстрее вообще не использовать внешние ключи?
Каскад в фооринкеях - это всего лишь опция. Основное назначение - контролировать целостность данных.
Шамиль Фаридови
Имеет ли механизм внешних ключей с каскадным удалением какое-то преимущество в производительности по сравнению с предварительной ручной очисткой всех detail-таблиц?
Каскады дают в итоге меньше писанины, более просты и надежны в поддержке (повесил и забыл); удалять руками - это более управляемая вещь, но требует тщательного тестирования, чтобы как раз ничего нигде не забыть.
22 июн 12, 12:09    [12758903]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Гавриленко Сергей Алексеевич
Шамиль Фаридович
По идее, если проводить ручное удаление, то быстрее вообще не использовать внешние ключи?
Каскад в фооринкеях - это всего лишь опция. Основное назначение - контролировать целостность данных.

Вы не ответили на сам вопрос.
22 июн 12, 12:17    [12758980]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Шамиль Фаридович
Гавриленко Сергей Алексеевич
пропущено...
Каскад в фооринкеях - это всего лишь опция. Основное назначение - контролировать целостность данных.

Вы не ответили на сам вопрос.
Вы задали четыре вопроса.

Сообщение было отредактировано: 22 июн 12, 12:18
22 июн 12, 12:18    [12758990]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Я выделил тот вопрос, на который вы не ответили. А за остальные - спасибо)
22 июн 12, 12:26    [12759079]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Glory
Member

Откуда:
Сообщений: 104751
Шамиль Фаридович
По идее, если проводить ручное удаление, то быстрее вообще не использовать внешние ключи?

А при добавлении/обновлении тоже писать кучу проверок ? Да еще с блокировками на время проверок ?

Шамиль Фаридович
Чем так плохо каскадное удаление, кроме возможности случайно удалить кучу связанных записей?

Некорректный вопрос. Чем естественный ключ плох по сравнению с суррогатным ? Чем нормализация лучше денормализации ? И тд
22 июн 12, 12:27    [12759085]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Шамиль Фаридович
Я выделил тот вопрос, на который вы не ответили. А за остальные - спасибо)
Ответил. Если вам не нужна основная функция форинкеев, то можно не использовать.
22 июн 12, 12:29    [12759109]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Спасибо за ответы, остался еще 1 вопрос:
Шамиль Фаридович
Увеличит ли производительность каскадного удаления наличие индексов по FK в detail-таблицах (с одной стороны увеличиться скорость поиска, но с другой стороны нужно перестраивать сами индексы)?
22 июн 12, 12:33    [12759138]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Шамиль Фаридович
Спасибо за ответы, остался еще 1 вопрос:
Шамиль Фаридович
Увеличит ли производительность каскадного удаления наличие индексов по FK в detail-таблицах (с одной стороны увеличиться скорость поиска, но с другой стороны нужно перестраивать сами индексы)?
Да, индексы нужны.
22 июн 12, 12:34    [12759157]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить