Database Programming & Design



         

Support for Data Warehouses - часть 4


выполнять операции AND, OR, NOT и COUNT. Один из подходов состоит

в совместном использовании битовой и RID индексации: когда

битовый фрагмент становится слишком разреженным, он заменяется на

RID-фрагмент. В других подходах используется техника кодирования

битовых шкал. В этом случае становится сложно эффективно

выполнять перечисленные выше операции между сжатой и несжатой

шкалами. Потребность нахождения техники сжатия, которая бы не

тормозила выполнение этих операций является наиболее важной

проблемой битовой индексации.

Операции соединения при выполнении SQL-запросов требуют больше

всего ресурсов по сравнению с другими реляционными операциями.

Производители СУБД реализовали несколько алгоритмов для

эффективного выполнения соединений (соединения путем слияния -

Merge Join, соединения на основе хэширования - Hash Join и т.д.).

Однако появившийся в последнее время новый специализированный

подход, называемый индексацией соединения, может обеспечить

существенное ускорение многих запросов.

Индекс соединения обеспечивает средства, с помощью которых СУБД

может эффективно транслировать ограничения на столбец одной

таблицы в ограничения на другую таблицу путем стандартного

соединения. Предположим, что мы имеем таблицу SALES, каждая

строка которой является агрегацией данных о продажах конкретного

продукта для конкретного заказчика в конкретный день (это

называется грануляцией агрегации). SALES является таблицей фактов

и соединяется с таблицами, представляющими три измерения,-

CUSTOMER, PRODUCT и TIME через внешние ключи cid, pid и day.

Предположим, что следующий запрос является распространенным:

(SEL1)

SELECT SUM(dollar_sales), SUM(unit_sales)

FROM SALES s, CUSTOMERS c, PRODUCTS p, TIME t

WHERE s.cid = c.cid AND s.pid = p.pid AND s.day = t.day

AND t.month = 'May95' AND p.package_type = 'box'

AND c.gender = 'M'

Желательно заранее иметь индексы для эффективного выполнения

этого запроса. В этом запросе столбец gender принадлежит таблице

CUSTOMER, но только столбцы таблицы SALES агрегированы;




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