Database Programming & Design



         

Support for Data Warehouses


Patrick O'Neil

Professor of Computer Science at the University of Massachusetts at Boston

Конечно, использование больших складов данных невозможно без

использования параллелизма. Чтобы просто прочитать терабайт

данных с использованием одного дискового устройства, потребуется

не меньше недели. Распараллеливание запросов позволяет выполнять

один запрос на большом числе недорогих процессоров. Оптимизатор

запросов получает возможность эффективного использования всех

аппаратных ресурсов, обеспечивая гарантированное выполнение

запроса при выходе из строя некоторых процессоров и максимально

эффективное выполнение высокоприоритетных запросов.

Но параллелизм - это только половина того, что требуется для

решения задачи эффективности склада данных. Без использования

максимально совершенной техники индексации оптимизатор запросов

оказывается в состоянии всего лишь использовать неэффективные

методы доступа для выполнения сложных запросов, подобные тем,

которые применяются в коммерческих приложениях.

В статье приводится введение в основные понятия эффективных

методов индексации для поддержки приложений класса DSS (Decision

Support System): битовые (bitmap) индексы и индексы соединений.

Затем рассматриваются новые возможности индексации, внедренные в

Informix Extended Parallel Server (XPS)

Битовые индексы похожи на традиционные индексы, основанные на

списках идентификаторов строк (RID - Row Identifier). Но битовые

индексы в некоторых случаях позволяют получить существенный

выигрыш в производительности.

Начнем с определения списка RID. Каждой строке в таблице

приписывается RID, который можно рассматривать как указатель на

строку на диске. Обычно RID состоит из номера страницы на диске и

номера позиции записи на этой странице. Набор строк с данным

свойством может быть представлен как список RID этих строк. В

большинстве СУБД используются 4-байтовые RID (хотя в Oracle RID

имеет длину по крайней мере 6 байт). Традиционно списки RID

использовались в индексах для определения набора строк,




Содержание  Назад  Вперед