Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Schnelleres Abfragen eines binären (1) Felds oder von 8-Bit-Feldern?

Indizes auf Einzelbitfeldern sind grundsätzlich nutzlos. Ein Bit hat eine schreckliche Selektivität, 0 oder 1, und wird wahrscheinlich vom Optimierer ignoriert. 8 Indizes auf 8-Bit-Feldern werden 8 Indizes sein, die vom Optimierer ignoriert werden.

Ein Index für eine Byte-Spalte ist mit 256 unterschiedlichen Werten nur geringfügig selektiver. Wenn Sie jedoch nach einzelnen Bitmustern suchen, z. B. „Ist Bit 3 eingeschaltet“, gibt es keine Möglichkeit, dies als individuellen zu suchenden Wert oder als Bereich auszudrücken.

Die Schlussfolgerung ist, dass Sie, egal was Sie versuchen, sowieso mit einem Tabellenscan enden werden .

Erklären Sie also besser Ihr Problem, nicht Ihre Lösung, und vielleicht können wir uns etwas Effizienteres einfallen lassen.