Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È più veloce interrogare un campo binary(1) o campi a 8 bit?

Gli indici sul campo a bit singolo saranno sostanzialmente inutili. Un bit ha una selettività terribile, 0 o 1, e sarà probabilmente ignorato dall'ottimizzatore. 8 indici su campi da 8 bit saranno 8 indici ignorati dall'ottimizzatore.

Un indice su una colonna di byte è solo leggermente più selettivo, con 256 valori distinti. Ma se stai cercando schemi di bit individuali, come 'è il bit 3 attivo', non c'è modo di esprimerlo come un valore individuale da cercare né come un intervallo.

La conclusione è che, indipendentemente da quello che provi, ti ritroverai con una scansione della tabella comunque .

Quindi spiega meglio qual è il tuo problema, non la tua soluzione, e forse possiamo pensare a qualcosa di più efficiente.