Нужно ли индексировать столбец, который является FK для PK в другой таблице в SQL Server 2008?
У меня есть таблица с довольно тяжелыми запросами. Столбец, к которому я присоединяюсь, представляет собой FK для PK в другой таблице. Кажется, что этот столбец занимает время запроса при сканировании таблицы, что заставляет меня поверить, что SQL Server не сможет использовать индекс для удаленной таблицы, и ему потребуется собственный индекс для моей исходной таблицы.
Я вполне уверен, что я прав, но было бы замечательно, если бы гений SQL Server 2008 смог в этом разобраться.
2 ответа
Вам нужно индексировать столбцы внешнего ключа? Нет, абсолютно нет.
Следует ли индексировать столбцы внешнего ключа? Почти наверняка. Как вы обнаружили, столбцы внешнего ключа часто используются в SELECT и JOIN, и если они не проиндексированы, они действительно могут снизить производительность.
Вам обязательно нужно проиндексировать столбец внешнего ключа! Некоторые утверждают, что это должно быть сделано автоматически SQL Server.