Индекс для столбцов внешнего ключа не является обязательным в SQL Server, потому что создание ограничения внешнего ключа не автоматически создаёт соответствующий индекс. learn.microsoft.com stackoverflow.com
Однако часто возникает необходимость создания индекса для внешнего ключа вручную по следующим причинам: learn.microsoft.com
- Столбцы внешнего ключа часто используются в критериях соединения при совместном применении в запросах данных из связанных таблиц. learn.microsoft.com Индекс позволяет ядру СУБД быстро находить связанные данные в таблице внешнего ключа. learn.microsoft.com
- Улучшается производительность при удалении строки первичного или уникального ключа. www.sqlskills.com Когда удаляется ключевая строка, SQL Server должен проверить, есть ли какие-то строки, которые ссылаются на удаляемую строку. www.sqlskills.com Чтобы эффективно находить эти строки, помогает индекс для столбца внешнего ключа. www.sqlskills.com
Таким образом, хотя создание индекса для внешнего ключа не требуется, его наличие может повысить производительность при определённых операциях.