ВУЗ:
Составители:
Рубрика:
118
7.4. Индексы
Индекс – это особый объект, позволяющий решить проблему поиска
данных в таблице БД.
Индекс содержит отсортированную по колонке или нескольким колон-
кам информацию и указывает на строки, в которых хранится конкретное зна-
чение колонки.
Возникновение проблемы поиска данных связано с тем, что многие ре-
ляционные СУБД имеют страничную организацию, при
которой физически
таблица может храниться фрагментарно в разных областях диска, причем
строки таблицы располагаются на страницах неупорядоченно, т.к. данные
обычно хранятся в том порядке, в котором их ввели в таблицу.
Хотя такой способ хранения позволяет быстро вводить новые данные,
но для того, чтобы найти нужную строку, необходимо просмотреть всю
таб-
лицу. В промышленных системах каждая таблица может содержать миллио-
ны строк, поэтому простой перебор ведет к катастрофическому падению
производительности ИС.
Использование индексов позволяет существенно повысить эффектив-
ность информационных систем по обработке хранимых данных. Индекс по-
добен содержанию книги, которое указывает на все номера страниц, посвя-
щенных конкретной теме. Например, если
необходимо найти клиента по
имени, то можно создать индекс по колонке ClientName таблицы Client.
В индексе имена клиентов будут отсортированы в алфавитном порядке. Для
имени индекс будет содержать ссылку, указывающую, в каком месте табли-
цы хранится эта строка. Индекс можно создать для всех колонок таблицы, по
которым часто производится поиск
. Для поиска клиента серверу направляет-
ся запрос с критерием поиска (ClientName ="Иванов"). При выполнении
запроса СУБД просматривает индекс, а не все по порядку строки таблицы
Client. Поскольку значения в индексе хранятся в определенном порядке, то
просматривать нужно гораздо меньший объем данных, что значительно
уменьшает время выполнения запроса.
При генерации схемы
физической БД ERwin автоматически, по умол-
чанию создает отдельный индекс на основе первичного ключа каждой табли-
цы, а также на основе всех альтернативных ключей, внешних ключей и ин-
версных входов, поскольку эти колонки наиболее часто используются для
поиска данных.
Для повышения производительности системы ERwin позволяет создать
собственные индексы. При этом целесообразно создавать индексы
с различ-
ными колонками и порядком сортировки, предварительно проанализировав
наиболее часто выполняемые запросы.
ERwin автоматически генерирует имя индекса, созданного на основе
ключа по принципу: "X" + имя ключа + имя таблицы, где имя ключа – "РК"
для первичного ключа, "IFn" – для внешнего, "AKn" – для альтернативного,
"IEn" – для инверсионного входа. Например, по умолчанию при создании
7.4. Индексы Индекс – это особый объект, позволяющий решить проблему поиска данных в таблице БД. Индекс содержит отсортированную по колонке или нескольким колон- кам информацию и указывает на строки, в которых хранится конкретное зна- чение колонки. Возникновение проблемы поиска данных связано с тем, что многие ре- ляционные СУБД имеют страничную организацию, при которой физически таблица может храниться фрагментарно в разных областях диска, причем строки таблицы располагаются на страницах неупорядоченно, т.к. данные обычно хранятся в том порядке, в котором их ввели в таблицу. Хотя такой способ хранения позволяет быстро вводить новые данные, но для того, чтобы найти нужную строку, необходимо просмотреть всю таб- лицу. В промышленных системах каждая таблица может содержать миллио- ны строк, поэтому простой перебор ведет к катастрофическому падению производительности ИС. Использование индексов позволяет существенно повысить эффектив- ность информационных систем по обработке хранимых данных. Индекс по- добен содержанию книги, которое указывает на все номера страниц, посвя- щенных конкретной теме. Например, если необходимо найти клиента по имени, то можно создать индекс по колонке ClientName таблицы Client. В индексе имена клиентов будут отсортированы в алфавитном порядке. Для имени индекс будет содержать ссылку, указывающую, в каком месте табли- цы хранится эта строка. Индекс можно создать для всех колонок таблицы, по которым часто производится поиск. Для поиска клиента серверу направляет- ся запрос с критерием поиска (ClientName ="Иванов"). При выполнении запроса СУБД просматривает индекс, а не все по порядку строки таблицы Client. Поскольку значения в индексе хранятся в определенном порядке, то просматривать нужно гораздо меньший объем данных, что значительно уменьшает время выполнения запроса. При генерации схемы физической БД ERwin автоматически, по умол- чанию создает отдельный индекс на основе первичного ключа каждой табли- цы, а также на основе всех альтернативных ключей, внешних ключей и ин- версных входов, поскольку эти колонки наиболее часто используются для поиска данных. Для повышения производительности системы ERwin позволяет создать собственные индексы. При этом целесообразно создавать индексы с различ- ными колонками и порядком сортировки, предварительно проанализировав наиболее часто выполняемые запросы. ERwin автоматически генерирует имя индекса, созданного на основе ключа по принципу: "X" + имя ключа + имя таблицы, где имя ключа – "РК" для первичного ключа, "IFn" – для внешнего, "AKn" – для альтернативного, "IEn" – для инверсионного входа. Например, по умолчанию при создании 118
Страницы
- « первая
- ‹ предыдущая
- …
- 116
- 117
- 118
- 119
- 120
- …
- следующая ›
- последняя »