devxlogo

Cannot index

Cannot index

Question:
SQL Server 6.5 does not allow an index to be placed on the bit datatype. Does this affect performance when doing queries that filter on the bit, or are they automatically indexed? Or because they are only two values, don’t they need to be indexed (seems unlikely)?

If they cannot be indexed and they do affect performance, what is a workaround? Should I use a byte or some other datatype to represent the true/false state?

Answer:
Assuming that you are just filtering on a field that has only two values, using another data type will not help. As you suggested, if the data in a column is fairly evenly split between just two values, SQL Server will do a table scan rather than use the index.

However, if your query also contains filters on other columns and those columns have indexes, SQL Server will choose the most helpful index from the non-bit columns.

devx-admin

Share the Post: