Индексы

В таблице БД данные обычно хранятся в том же порядке, в котором их ввели в таблицу. Многие реляционные СУБД имеют страничную организацию, при которой физически таблица может храниться фрагментарно в разных областях диска, причем строки таблицы располагаются на страницах неупорядоченно. Это позволяет быстро вводить данные, но осуществлять операцию поиска в системах, содержащих миллионы строк, приводит к катастрофическому падению производительности БД. Чтобы решить эту проблему СУБД использует особый объект, называемый индексом. Он подобен содержанию книги, которое указывает на все номера страниц, посвященных конкретной теме. Индекс содержит отсортированную по колонке или нескольким колонкам информацию и указывает на строки, в которых хранится конкретное значение колонки. При выполнении запроса СУБД просматривает индекс, вместо того, чтобы просматривать по порядку все строки таблицы. Поскольку значения в индексе хранятся в определенном порядке, просматривать нужно гораздо меньший объем данных, что значительно уменьшает время выполнения запроса. Индекс можно создать для всех колонок таблицы, по которым часто производится поиск.

При генерации схемы физической БД Erwin автоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей, поскольку эти колонки наиболее часто используются для поиска данных. Для повышения производительности можно отказаться от генерации индексов по умолчанию и создать собственные индексы.

Erwin автоматически генерирует имя индекса по принципу «Х» + имя ключа + имя таблицы (физическое!), где имя ключа «PK» для первичного ключа, «IFn» - для внешнего, «AKn» - для альтернативного.

В редакторе Index Editor можно изменить имя индекса изменить его определение так, чтобы он принимал уникальные или дублирующие значения, или изменить порядок сортировки данных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: