Как правильно построить индексы?

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
Olga_3005
Сообщения: 1
Зарегистрирован: 04 сен 2009, 17:15

04 сен 2009, 17:20

Доброе время суток!

Имеется таблицу, которая содержит 160 полей, без внешних ключей
Количество строк - 1 миллион.
Нам необходимо сделать выборку по 14 полям от значения - до значения (поля не входят
в первичный ключ), причем количество и состав полей, участвующих в выборке могут меняться в зависимости
от установок пользователя. Сортировка выбранных записей тоже должна осуществляться по полям не входящим
в первичный ключ.
Например: пользователь может отправить запрос на выборку записей по: наименованию, № договора, дате
заключения договора, типу договора, сумме и т.п. с сортировкой по наименованию)

Посоветуйте, пожалуйста, как правильно построить индексы для этой таблицы для минимизации времени
выполнения этого запроса?

Заранее спасибо за ответ
Laba
Сообщения: 33
Зарегистрирован: 24 мар 2009, 17:47

07 сен 2009, 12:41

Какая СУБД?

В Вашем случае не надо сразу делать индексы.

Надо собирать статистику запросов.

Нужно ответить на вопрос: "Какие поля чаще всего используются?" Например, поле "№ договора" используется в 30 запросах из 100, а поле "тип договора" только в 1 из 100.

Вот когда известна частота использования полей (и их комбинаций), то можно создавать индексы.

Не хотите долго ждать - спросите у конечных пользователей. Что чаще всего хотят использовать?
Ответить