Як сказав @MartinSmith, якщо ви коли-небудь перейдете до SQL 2008, то відфільтрований індекс стане ідеальним рішенням. Однак середній час, як загальний випадок, будь-який доданий індекс збільшить ваш час завантаження. Малі показники менше, ніж великі.
Я хотів би звернути увагу на те, якщо у вас є індекс, який можна змінити. Якщо припустити, що ваші існуючі запити використовують даний індекс, то додавання бітової колонки в кінець цього індексу повинно мати мінімальний вплив на вставки та позитивний ефект, який ви шукаєте на ваші запити.
Наступне, на що слід звернути увагу: "У мене вже багато індексів?" Немає жорсткого і швидкого правила щодо того, що таке "багато", але я зазвичай переходжу за правилом 10 індексів - це межа, якщо мені дійсно не потрібен новий.
Остання думка, перевірити це на тестовому екземплярі. Створіть таблицю з кількома мільйонами рядків, запустіть навантаження на неї, додайте свій індекс, а потім запустіть навантаження ще раз і побачите, чи помітили ви значне збільшення часу завантаження.
Тільки ви справді можете вирішити, що таке "значуще". У мене є машини, де додавання 5 хвилин до часу завантаження є "значним" та інші, де я міг би спокійно бачити збільшення на пару годин.
Редагувати:
Інший варіант - розділити вашу таблицю. Можливо, вам доведеться використовувати розділений вигляд, якщо ви не використовуєте Enterprise Edition, але навіть це повинно допомогти. Ви ставите свої бітові 0 в один розділ, а свої бітові - в інші. Якщо припустити, що ви вставляєте лише одну чи іншу версію, то ви навіть можете пришвидшити свої вставки.