Индексирование
Индексирование всегда являлось важным методом эффективной обработки за-просов в базах данных. В отличие от 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
Статьи по теме:
No related posts