Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Индексы в таблице [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо