On est quand même dans le cas très particulier où N=2 et où la table personne comprend 3 colonnes (si on reprend ta définition). Le résultat serait sans doute différent si N > 2 et/ou si la table contenait plus de colonnes. Je vois une raison pour laquelle l'optimiseur n'utilise pas l'index : il voit qu'il n'y a que 2 valeurs. L'index lui indique une répartition 50/50 (à peu près hein). Avec l'index, il récupère 2 des 3 colonnes de la table personne. Dans ce cas précis, il pourrait donc être plus coûteux d'utiliser l'index que de ne pas l'utiliser ! Car s'il utilise l'index, il est ensuite obligé d'aller chercher la moitié des enregistrements dans la table, donc lire la moité de la table. Comme il y a des chances que l'index sur le sexe ne soit plas CLUSTERED, statistiquement, il sera obligé de lire quasiment toutes les pages. Donc, autant ne pas l'utiliser.
Un test à faire, se serait de recréer l'index en incluant la colonne "nom" (je dis bien incluse, pas faisant partie de). Là, il se pourrait qu'il y ait un bénéfice pour les recherches "homme" ou "femme" (mais pas les deux, puisque cela reviendrait à renvoyer tous les enregistrements).
Partager