Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Plus rapide pour interroger un champ binaire (1) ou des champs 8 bits ?

Les index sur un champ à un seul bit seront fondamentalement inutiles. Un bit a une sélectivité terrible, 0 ou 1, et sera probablement ignoré par l'optimiseur. 8 index sur des champs de 8 bits seront 8 index ignorés par l'optimiseur.

Un index sur une colonne d'octets n'est que légèrement plus sélectif, avec 256 valeurs distinctes. Mais si vous recherchez des modèles de bits individuels, comme "le bit 3 est-il activé", il n'y a aucun moyen de l'exprimer sous la forme d'une valeur individuelle à rechercher ni sous la forme d'une plage.

La conclusion est que peu importe ce que vous essayez, vous vous retrouverez avec une analyse de table de toute façon .

Expliquez donc mieux quel est votre problème, pas votre solution, et nous pourrons peut-être penser à quelque chose de plus efficace.