У меня есть таблица с почтовыми индексами со следующими столбцами:Какой индекс используется в выборе и почему?
id - PRIMARY KEY
code - NONCLUSTERED INDEX
city
Когда я выполнить запрос
SELECT TOP 10 * FROM ZIPCodes
Я получаю результаты, отсортированные по id
колонку. Но когда я изменить запрос:
SELECT TOP 10 id FROM ZIPCodes
Я получаю результаты, отсортированные по code
колонку. Опять же, когда я изменить запрос на:
SELECT TOP 10 code FROM ZIPCodes
получить результаты сортируются по code
колонку снова. И, наконец, когда я изменяю:
SELECT TOP 10 id,code FROM ZIPCodes
Я получаю результаты, отсортированные по id
колонку.
Мой вопрос находится в названии вопроса. Я знаю, какие индексы используются в запросах, но мой вопрос: почему эти индексы используются? I второй запрос (SELECT TOP 10 id FROM ZIPCodes
) не был бы быстрее, если бы использовался индекс кластеров? Как механизм запроса выбирает, какой индекс использовать?