Индексирование

Индексирование всегда являлось важным методом эффективной обработки за-просов в базах данных. В отличие от OLTP-систем, в которых основными опе­рациями являются операции обновления, в хранилищах производится чтение огромных объемов данных с целью ответа на запросы. Поэтому важно понять требования хранилищ к индексированию.

Решение о том, какие индексы создавать, является важной частью физичес­кой разработки базы данных. Индексы можно создавать по столбцам, которые часто появляются в критериях выбора в запросах. Столбцы, на которые часто ссылаются в условии SQL WHERE, — хорошие кандидаты на индексирование. Большей части запросов, связанных с принятием решений, требуются опреде-ленные строки из таблицы измерений, такчто таблицы измерений должны быть хорошо проиндексированы. Например, если пользователю нужно расположе­ние всех магазинов в северо-восточном регионе, как в приведенном ниже за­просе, то для обнаружения этих строк в северо-восточном регионе можно ис­пользовать индекс созданный по столбцу «region», а не читать все строки таблицы.

SELECT store,  location FROM stores WHERE region =  ‘Northeast’;

В типичном хранилище немного операций обновления, отличных от загрузки новых данных. Поэтому хранилище может иметь намного больше индексов, чем OLTP-система. В хранилище свободного места для индексов часто должно быть значительно больше, чем для хранения данных, особенно это касается таб­лицы фактов. Поэтому вы можете захотеть свести индексирование таблицы фактов к минимуму.-Как правило, для таблицы фактов можно иметь один-два соединенных индекса. Кроме того, может быть, стоит подумать о индексах на основе битовых карт для столбцов внешних ключей, чтобы ускорить соедине­ния по типу звезды. С другой стороны, таблицы измерений намного меньше, по сравнению с таблицей фактов, и их можно проиндексировать намного шире. Любой столбец таблицы измерений, который часто используется в операциях выбора или является уровнем объекта измерения, описанного в главе 4, — это хороший выбор для индексирования.     ■

Индекс можно создать по одному или более столбцу таблицы. Эти столбцы называются ключами индекса. Для каждого значения ключа индекс содержит указатель на местоположение строк с данным значением ключа. Когда данные в таблице изменяются, индекс автоматически обновляется, отражая изменения данных.

Свойства хранилища данных______________________________________________ 81

Oracle предлагает несколько типов индексов. В этой книге мы обсудим три из них:

•    иерархический индекс (b*tree index); ‘

•   индекс на основе битовых карт (bitmappedindex);

•     соединительный индекс на основе битовых карт (bitmapped join index).

Метки:10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9

Связанные записи

Tags: , , , , , , , , , , ,

Статьи по теме:

No related posts
Доктор Хаус онлайн смотреть быстрее беги сюда где есть этот сериал