Database Programming & Design



         

Taming Data Giants - часть 2


Основным преимуществом

циклического разделения является эффективное распределение

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

таблицы.

В большинстве СУБД, ориентированных на поддержку систем класса

DSS (Decision Support System - системы поддержки принятия

решений), используется разделение на основе хэширования,

обеспечивающее равномерное распределение данных между разделами и

облегчающее выполнение соединений, если две таблицы разделены по

одному и тому же ключу (конечно, в этом случае строки обеих

таблиц с одинаковым значением хэш-функции от значения ключа

должны храниться в одном и том же разделе). В СУБД разряда

"shared-nothing" (такие системы основываются на

несимметричных мультипроцессорных архитектурах, в которых

процессоры не имеют совместно используемых ресурсов основной и

внешней памяти) соединения совместно разделенных таблиц

выполняются существенно быстрее, чем при применении других

способов разделения. Реально, если соединяются две таблицы, не

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

перераспределение строк соединяемых таблиц. Стоимость

перераспределения различна для разных серверов баз данных и

сильно зависит от размеров таблиц. В системах типа Extended

Parallel Server (XPS) компании Informix Software Inc., в которых

обеспечивается очень высокая эффективность коммуникаций между

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

всего на 10% медленнее, чем если бы они были совместно

разделенными. Однако в системах типа shared-nothing, не

обеспечивающих должную оптимизацию перераспределений, не

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

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

системах Teradata (NCR Corp.), DB2/6000 Parallel Edition (IBM

Corp.), MPP (Sybase Inc.). В системах Non-Stop SQL (Tandem

Computers Inc.) и DB2 V.4 для MVS, которые ориентированы на

эффективную поддержку мощных систем класса OLTP (On-Line

Transaction Processing - оперативная обработка транзакций), для




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