• You can use indexes on columns like OrderStatus that have a small number of values.  Hopefully 99% of your orders are completed, but if you need to check the sub-1% of orders that have status of HOLD, ERROR, INQUEUE, PROCESSING, you want to use an index. 

    You can have an index with highly selective values and low-selectivity values.  Don't generalize, know your selectivity!

    I had a client that needed to work on orders that were status=QUEUE.  The order status index worked great even though it would have hindered a search on status=COMPLETED.  The searches that would return less than 1% of the rows used the index. 

    Bill Twomey

    Microsoft SQL DBA