Оптимизация хранилища данных
Хранилища используются, в основном, для организации данных, чтобы на запросы, необходимые для анализа и принятия решений, мог быть дан быстрый ответ. По мере того как хранилище увеличивается в размерах, весьма часто размер таблицы фактов начинает составлять несколько гигабайт или даже терабайт. Для быстрой обработки запроса крайне важно, чтобы извлечение и обработка данных базы производились - эффективно. Процесс оптимизации производительности в OLTP-системах с акцентом на обновлениях хорошо известен. Однако в хранилищах данных, акцент в которых делается на обработке запросов, оптимизация имеет совершенно иные требования. В этой главе мы рассмотрим некоторые свойства базы данных Oracle, которые специально разработаны для улучшения обработки запросов к хранилищу.
Хорошую производительность хранилища в высокой степени определяет физическая схема базы данных. Мы рассмотрим несколько методов, которые подходят для хранилищ, включая секционирование, сжатие сегментов данных и индексирование на основе битовых карт. Также мы обсудим оптимизацию запросов, в частности отсечение разделов (partition pruning), соединение с учетом разделов (partition-wise join) и преобразование по типу звезды (star transformation).
Приложениям, ориентированным на помощь в принятии решений, часто требуется выполнять такие вычисления, как сравнение по периодам и кумулятивная агрегация (cumulative aggregation). Такие запросы традиционно требуют создания очень сложного и длинного кода SQL. Oracle и некоторые другие производители баз данных начали работу по выработке стандартизованных расширений языка SQL, которые позволят упростить составление таких запросов и эффективно их обрабатывать. Мы рассмотрим некоторые из этих новых функций SQL
Метки:10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9
Статьи по теме:
No related posts