Оптимизация удаляет для таблицы, на которую ссылаются партиями внешних ключей

У меня есть таблица Document на это ссылается тонна других таблиц через внешние ключи. Я пытаюсь удалить Запись документа, и согласно моему плану выполнения, SQL Server делает сканирование кластерного индекса на каждых из таблиц ссылки. Это очень болезненно.

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

5
задан Shaul says I Support Monica 22 February 2010 в 08:55
поделиться

2 ответа

Нет, SQL Server не создает индекс автоматически при создании внешнего ключа. Вы должны сами создать индексы.

Сообщение по теме: Создает ли внешний ключ автоматически индекс?

4
ответ дан 14 December 2019 в 19:11
поделиться

Название «Внешний ключ» немного вводит в заблуждение, поскольку обычно связано с «первичным ключом», который индексируется автоматически. Итак, люди могут предположить, что внешний ключ тоже проиндексирован.

Дело в том, что «ключ» здесь означает ограничение. Таким образом, добавляя внешний ключ, вы фактически добавляете ограничение. Индекс - совсем другое дело.

1
ответ дан 14 December 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: