Скажем, у меня есть стол:
CREATE TABLE Users (
Id INT IDENTITY (1, 1),
FirstName VARCHAR(40),
LastName VARCHAR(40)
)
Запросы обычно выполняются на Имя или Фамилия , но также на Имя и Фамилия .
Если я создаю некластеризованный индекс для FirstName , а другой для LastName , то мои первые два запроса будут обработаны. Очевидно, SQL Server будет использовать пересечение индекса для другого запроса.
В качестве альтернативы, если у меня есть индексы на (FirstName) и на (LastName, FirstName), может ли SQL Server использовать второй индекс для запросов только по LastName , а также запросов по обоим?
Хранит ли SQL Server составные индексные части слева направо или справа налево? Другими словами: будет ли он строить ключ как LastNameFirstName или FirstNameLastName? Или это можно произвольно выбрать?