Самый простой способ, которым я нахожу концептуализацию отфильтрованного индекса, - это индекс с ограничением, который допускает только определенные значения в индексе.
Если ваш запрос запрашивает значения, все из которых попадают в ограничение, то движок знает, что он может использовать отфильтрованный индекс вместо возврата к другому индексу / базовой таблице. Если вы запросите значения вне ограничения, отфильтрованный индекс не будет использоваться.
С точки зрения того, как это делает вашу систему быстрее, индекс может быть очень целевым и занимать меньше страниц в целом, чем эквивалентный индекс NC для тех же значений. это в основном дает вам меньше операций ввода-вывода и приводит к увеличению скорости. Даже при поиске индекса в фильтрованном индексе вы с большей вероятностью получите попадание в кэш страницы для индекса, поскольку фильтрованный индекс включает только те строки, которые были вам интересны (теоретически) из-за ограничения.
Если ваши распределения данных и запросы не соответствуют определенным шаблонам использования, вам будет сложнее заставить их работать, но в сценариях, где у вас много нулевых значений, которые вас никогда не интересуют, тогда можно установить отфильтрованный индекс например, могут включать только ненулевые значения.