A индекс покрытия - это индекс, который содержит все и, возможно, больше столбцов, необходимых для вашего запроса.
Например, это:
SELECT *
FROM tablename
WHERE criteria
обычно будет использовать индексы для ускорения разрешения того, какие строки извлекать, используя критерий , но затем перейдет к полной таблице для извлечения строк.
Однако, если в индексе содержатся столбцы column1, column2 и column3 , то этот sql:
SELECT column1, column2
FROM tablename
WHERE criteria
и, при условии, что этот конкретный индекс может использоваться для ускорения разрешения извлекаемых строк, индекс уже содержит значения интересующих вас столбцов, поэтому ему не нужно переходить к таблице, чтобы извлекает строки, но может выдавать результаты непосредственно из индекса.
Это также может быть использовано, если вы видите, что типичный запрос использует 1-2 столбца для определения того, какие строки, а затем обычно добавляет еще 1-2 столбца, может быть полезно добавить эти дополнительные столбцы (если они то же самое) к индексу, чтобы обработчик запросов мог получить все из самого индекса.
Вот статья : Покрытие индекса повышает производительность запросов SQL Server по теме.