Добрый вечер! Предположим, что у нас есть некластеризованный индекс (Должность), мы добавляем в закладки индекса (З/П)-(покрывающий индекс). Создаем запрос на выборку Должность и З/П. Система начинает поиск, находит определенную должность и получает физический адрес СТРОКИ, где есть эта должность. Так вот, если она уже знает адрес строки, то зачем нам нужен покрывающий индекс? Чтобы индефицировать, что определенные данные в этой строке относятся к З/П?
Покрывающий (covering) индекс - это индекс, которого достаточно для ответа на запрос вовсе без обращения к самой таблице. В самом индексе хранится достаточно данных для ответа на запрос и, хоть и возможно по индексу достать всю строку данных - это просто не нужно. За счёт того, что не нужно дёргать непосредственно таблицу, а ответить можно используя только индекс - покрывающие индексы несколько быстрее (насколько - зависит от дисков, кэша и объёма горячей части базы). Но при этом, разумеется, сам индекс становится больше и злоупотреблять этим не нужно.