в системах Arbre, Bubba, Gamma
Механизм разделения с хэшированием используется в системах Arbre, Bubba, Gamma и Teradata.
В системах баз данных значительное внимание уделяется совместной кластеризации родственных данных в физической памяти. Если кортежи какого-либо набора кортежей обычно требуются вместе, то система баз данных пытается хранить их в одной физической странице. Например, если к Smith'ам в телефонной книге обычно обращаются в алфавитном порядке, то их записи следует хранить на страницах в том же порядке; эти страницы следует совместно кластеризовать на диске, чтобы можно было производить последовательную упреждающую выборку и другие оптимизации. Кластеризация во многом зависит от специфики прикладной программы. Например, в географических базах данных имеет смысл кластеризовать кортежи, описывающие соседние улицы; в прикладной программе управления инвентарными ведомостями кортежи, описывающие пункты накладной, разумно кластеризовать с кортежем накладной.
Разделение с хэшированием ориентировано на случайное разделение данных, а не на их кластеризацию. При разделении на основе диапазона значений (range partitioning)
в одном разделе совместно кластеризуются кортежи, имеющие одинаковые значения атрибутов. Это подходит для последовательного и ассоциативного доступа и дает хорошую основу для кластеризации. На рис. 7 показано такое разделение, базирующееся на лексикографическом порядке, но возможен и любой другой способ кластеризации. Разделение на основе диапазона значений получило свое имя от типичного запроса на языке SQL с указанием диапазона значений и специфицируется следующим образом: latitute BETWEEN 38 AND 30
Разделение на основе диапазона значений используется в системах Arbre, Bubba, Gamma, Oracle, Tandem.
При таком разделении возникает риск перекоса данных, когда все данные помещаются в один раздел, и перекоса выполнения, когда все выполнение происходит в одном разделе. Разделения на основе хэширования и кольцевые разделения менее подвержены перекосам. При разделении на основе диапазона значений перекосы можно свести к минимуму, используя критерий разделения, в котором учитывается неравномерность распределения значений атрибутов.
Содержание Назад Вперед