Создание и поддержка простой базы данных
Для каждого из способов, которые требуются для доступа к вашим данным, можно определять свой индекс. И если вы в таблице с данными добавляете, изменяете или удаляете строки, то снова сортировать эту таблицу не нужно – следует только обновить ее индексы.
А индекс можно обновить намного быстрее, чем сортировать целую таблицу. Создав индекс, строки которого выстроены в нужном порядке, вы с помощью этого индекса можете почти мгновенно переходить к нужным строкам таблицы данных.
Совет:
Так как поле ProposalNumber (номер предложения) одновременно и уникальное, и короткое, то с его помощью можно быстрее всего добраться к отдельной записи. Поэтому первичный ключ любой таблицы всегда должен быть индексирован. В Access это делается автоматически. Однако, чтобы использовать это поле, необходимо знать его значение в нужной вам записи. Вам могут потребоваться и дополнительные индексы, создаваемые на основе других полей, таких как LastName (фамилия), PostalCode (почтовый код) или HowKnown (кто таков). Если в таблице данных, проиндексированной по LastName, в результате поиска будет найдена первая строка, где значением этого поля является Marx, то будут найдены и все строки с таким же значением этого поля. В индексе ключи для всех этих строк идут друг за другом. Поэтому все строки, относящиеся к Chico, Groucho, Harpo, Zeppo и Karl, можно получить почти так же быстро, как и для одного только Chico.
В результате создания индекса возникает дополнительная нагрузка на вашу систему, от чего ее работа будет немного замедляться. Это замедление необходимо сравнивать с увеличением скорости доступа к записям в результате использования индекса. Если индексировать поля, часто используемые для доступа к записям из большой таблицы, то замедление работы оправдано. Однако если создавать индексы для полей, которые никогда не будут использоваться для доступа к записям, то потери времени во много раз превысят его экономию. Также не имеет смысла создавать индексы для полей, которые не позволяют отличить одну запись от другой. Например, поле BusinessOrCharity (бизнес или благотворительность) просто разбивает все записи в таблице только на две категории, поэтому хороший индекс на основе этого поля создать нельзя.
Помни:
Эффективность индекса в разных реализациях бывает разной. Если перенести базу данных с одной платформы на другую, то индексы, лучше всех работавшие в первой системе, могут плохо работать во второй. Случается, что база данных хуже работает с индексами, чем при их полном отсутствии. Индексы приходится заново настраивать для каждой конкретной конфигурации СУБД и аппаратного обеспечения. Какая из разных схем индексирования в общем работает лучше остальных, приходится определять опытным путем, принимая во внимание в каждом случае скорость получения данных и их обновления.
Чтобы создать индексы для таблицы PowerDesign, щелкните на пиктограмме Индексы, расположенной справа от пиктограммы Первичный ключ на панели инструментов Конструктор таблиц. Появится диалоговое окно Индексы, в котором уже есть поля Postal-Code и ProposalNumber. Диалоговое окно Индексы представлено на рис. 4.10.
Рис. 4.10. Диалоговое окно Индексы
Совет:
Access автоматически создает индекс для поля PostalCode, поскольку это поле часто используется для поиска данных.