![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексы в таблице [D5, MSSQL]
Vick © (2003-03-18 15:29:00)Доброго всем дня. Люди, расскажите по какому принципу нужно формировать индексы в таблице, чтобы быстро работали большие наборы данных, или где это можно прочесть?
Заранее спасибо за ответ.
MsGuns (2003-03-18 15:44:00) [1]Индексы служат для нескольких целей:
-Соблюдение уникальности значений некоторой совокупности полей
-Обеспечение упорядоченности курсора (рез.НД) при работе с табличными компонентами (типа TTable,TIBTable,..)
-Ускорение выполнения выборок
-Межтабличные связи "Один-ко-многим"
При создании индекса руководствуйся след.осн.правилами:
- Не имеет смысла в индекс включать большие поля (я, к примеру, руководствуюсь мах.значением симв.поля - 32 байта), т.к. подобный индекс может иметь обратный эффект
- Правило 20%. Если кол-во возможный вариантов значений поля превышает кол-во записей менее, чем в 5 раз, индекс неэффективен
(имеется в виду "ускорительный" эффект). Например, если есть поле, в котором содержится только 2 различных значения (например, пол: М или Ж), то индекс для такого поля - явное излишество
Почитать можно в любой литературе по реляционным БД. Много написано и в дельфишных хэлпах (в DB-aware - компонентах)
ZrenBy (2003-03-18 15:42:00) [2]http://www.sql.ru/articles/mssql/03013101Indexes.shtml