2015-01-08 2 views
0

Я столкнулся с медленными запросами на таблице с довольно большим количеством записей.Определение столбцов индекса

Чтобы уменьшить проблемы с производительностью, я создал промежуточную таблицу, которая содержит подмножество записей этой большой таблицы, чтобы помочь в присоединении к другим таблицам. Хотя это значительно улучшило производительность, процесс запроса большой таблицы для определения того, какие записи необходимо вставлять в промежуточную таблицу, по-прежнему довольно дорогостоящий.

Consulting this page, я использовал запрос «дорогостоящие отсутствующие индексы», чтобы узнать, какие индексы могут быть применены к большой таблице, однако он предполагает, что я включаю почти каждый столбец в один индекс. Это подводит меня к моему вопросу: должны ли индексы быть наиболее часто используемыми столбцами или столбцами, которые наиболее используются в условиях поиска?

+0

Зависит, если вы выберете всю таблицу или почти, те индексы, которые используются в условиях поиска, не помогут. Так что теперь сервер sql предлагает кухонную раковину, поместив все в индекс. – Mihai

+0

Мне нужно выбрать все столбцы в строке, но я использую только два столбца в условиях поиска. Но если я поместил все столбцы в индекс, это не повлияет на производительность, не так ли? –

ответ

1

Индексы используются для улучшения скорости, с которой база данных может найти записи, соответствующие критериям поиска, поэтому ответы на ваши вопросительные индексы полезны только для столбцов, используемых в условиях поиска.

Добавление индексов в столбцы, которые часто извлекаются, но не отображаются в качестве условий поиска, не будут служить никакой целью, кроме добавления дополнительных служебных данных для операций DML, поскольку индексы также должны поддерживаться.

Смежные вопросы