Как работают индексы

 

Важно то, что список номеров социального обеспечения отсортирован. Сортировка означает, что номер 001-01-3455 всегда предшествует в индексе номеру 002-40-3200, независимо от физического размещения записи в БД. Такая сортировка важна, т. к. она позволяет программе Access быстро проверять наличие дубликатов. Если вы вводите номер 001-02-4300, Access достаточно прочитать только первую часть списка. Как только программа обнаружит следующий "больший" SSN (тот, который включен в список позже в результате сортировки, например 001-02-501), она уже знает, что в оставшейся части индекса нет дубликата. На практике все БД используют множество алгоритмов оптимизации для того, чтобы сделать этот процесс стремительным. Но существует один ключевой принцип — без применения индекса программа Access должна проверять всю таблицу. В БД хранятся несортированные таблицы, поэтому программа не может быть уверена в том, что данного SSN нет в таблице до тех пор, пока не проверит каждую запись.

Итак, как применить индекс с полем? Хитрость заключается в применении свойства Индексированное поле (Indexed), которое доступно для данных всех типов за исключением типа Вложение и типа Объект OLE. Когда вы добавляете поле, у его свойства Индексированное

 

поле указано значение Нет. Для вставки индекса и предупреждения дублирования значений вы можете изменить в Конструкторе значение свойства Индексированное поле

на Да (Совпадения не допускаются). При выборе третьего варианта — Да (Допускаются совпадения) — создается индекс, но разрешается нескольким записям иметь одинаковые значения поля. Этот вариант не поможет вам поймать повторяющиеся записи, но его можно применить для ускорения поиска (для получения дополнительной информации см. примечание "Практические занятия для опытных пользователей. Как индексы ускоряют поиск" в разд. "Получение заданного количества первых записей" главы 6).

 

 

Примечание

Как вы знаете из главы 2, первичные ключи также предотвращают дублирование записей с помощью аналогичного метода. Когда вы определяете первичный ключ, программа Access создает индекс в поле.

 

Когда вы закрываете Конструктор после изменения свойства Индексированное поле,

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

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100