Как сказал @MartinSmith, если вы когда-нибудь обновитесь до SQL 2008, тогда фильтрованный индекс будет идеальным решением. Однако в то же время в общем случае ЛЮБОЙ добавленный индекс увеличит ваше время загрузки. Маленькие индексы меньше, чем большие.
Одна вещь, на которую я бы обратил внимание, это наличие у вас существующего индекса, который можно изменить. Предполагая, что ваши существующие запросы используют заданный индекс, добавление битового столбца в конец этого индекса должно иметь минимальное влияние на вставки и положительный эффект, который вы просматриваете в своих запросах.
Следующая вещь, на которую стоит обратить внимание: «У меня уже есть много индексов?» Не существует жесткого и быстрого правила относительно того, что такое «много», но я обычно придерживаюсь правила из 10 индексов - это предел, если мне ДЕЙСТВИТЕЛЬНО не нужен новый.
Последняя мысль, проверить это на тестовом экземпляре. Настройте таблицу с несколькими миллионами строк, запустите на ней нагрузку, добавьте индекс, затем снова запустите загрузку и посмотрите, не заметите ли вы значительное увеличение времени загрузки.
Только вы действительно можете решить, что является «значительным». У меня есть машины, где добавление 5 минут к времени загрузки является «значительным», а другие, где я смело могу увидеть увеличение на пару часов.
РЕДАКТИРОВАТЬ:
Другой вариант - разделить ваш стол. Возможно, вам придется использовать многораздельное представление, если вы не используете Enterprise Edition, но даже в этом случае это должно помочь. Вы помещаете свой бит 0 в один раздел, а свой бит 1 в другой. Предполагая, что вы вставляете только одну версию или другую, вы можете даже ускорить вставку.