La façon la plus simple de conceptualiser l'index filtré est un index avec une contrainte qui n'autorise que certaines valeurs dans l'index.
Si votre requête demande des valeurs qui tombent toutes dans la contrainte, le moteur sait qu'il peut utiliser l'index filtré au lieu de revenir à un autre index/table sous-jacente. Si vous demandez des valeurs en dehors de la contrainte, l'index filtré ne sera pas utilisé.
En termes de rapidité d'exécution de votre système, l'index peut être très ciblé et occuper globalement moins de pages qu'un indice NC équivalent sur les mêmes valeurs. cela vous donne essentiellement moins d'E/S et entraîne une augmentation de la vitesse. Même index recherchant l'index filtré, vous êtes plus susceptible d'obtenir un cache de page pour l'index, puisque l'index filtré n'inclut que les lignes qui vous intéressent (en théorie) en raison de la contrainte. Si vos distributions de données et requêtes ne suivent pas les schémas d'utilisation définis, il sera plus difficile de les faire fonctionner pour vous, mais dans les scénarios où vous avez beaucoup de valeurs nulles qui ne vous intéressent pas, alors l'index filtré peut être mis en place pour inclure uniquement des valeurs non nulles par exemple.