В каком из вариантов индекс ускорит поиск?
Есть некоторая таблица:
create table Table1
(
[a] int,
[b] int,
[c] int
)
И так же есть некоторый индекс Index1, в котором указаны поля a, b.
В каком из запросов индекс сработает?
select * from Table1 where a = 1select * from Table1 where b = 1select * from Table1 where c = 1select * from Table1 where a = 1 and b = 1select * from Table1 where b = 1 and c = 1
Я не разбираюсь в индексах, но мне кажется варианты 1, 2, 4 являются верными и индекс ускорит поиск, ведь там используются поля с индексом, однако постановка задачи такова, что вариант только один (в каком из запросов). Помогите пожалуйста!
Ответы (1 шт):
Если поля в индексе идут так как у условии(a, b), то запросы 1 и 4 ускорятся. Если порядок (b, a), то 2 и 5 ускорятся.
Но это всё справедливо, если индекс кластеризованный, т.к. ты все поля из таблицы выбираешь. Если индекс некластеризованный, то не факт, что оптимизатор его будет использовать. В таких случаях нужно анализировать план запроса. Ну и разобраться в индексах - отличная идея.