Индексы на базе В*-деревьев



бет6/10
Дата01.11.2022
өлшемі239.92 Kb.
#463783
1   2   3   4   5   6   7   8   9   10
Все лекции (1) (1) (1)

Кластеры


Кластер - это структура данных, повышающая производительность выборки. Как и индекс, кластер не влияет на логическое представление таблицы.
С помощью кластеров можно хранить взаимосвязанные данные в смежных областях диска. Oracle считывает данные поблочно, поэтому хранение значений рядом сокращает количество операций ввода/вывода, необходимых для их выборки, так как в одном блоке уже могут содержаться взаимосвязанные строки.
Кластер состоит из одной или нескольких таблиц. В состав кластера входит кластерный индекс, в котором хранятся все значения соответствующего кластерного ключа. Каждое значение в кластерном индексе указывает на блок данных, содержащий только строки с тем же значением кластерного ключа.
Если кластер содержит несколько таблиц, то таблицы должны быть соединены, а кластерный индекс должен содержать значения столбцов, по которым производится соединение. Поскольку значение кластерного ключа управляет размещением связанных с этим ключом строк, то при изменении значения ключа СУБД, возможно, будет вынуждена переместить связанные с ним строки.
Кластер может оказаться непригодным для таблиц, которые регулярно приходится сканировать целиком, то есть последовательно просматривать все строки без исключения. Поскольку доступ к кластерной таблице производится через кластерный индекс, который указывает на блок данных, для полного сканирования может потребоваться даже больше операций ввода/вывода, что снижает производительность.

Хешированные кластеры


Хешированным называется кластер, обладающий одной существенной особенностью, которая делает его еще быстрее. Каждый запрос данных из кластеризованной таблицы требует по меньшей мере двух операций ввода/вывода- для кластерного индекса и для данных. В хешированном кластере связанные строки данных хранятся вместе, но группируются согласно хеш-значению кластерного ключа. Это значение вычисляется хеш-функцией, то есть каждая операция выборки начинается с вычисления хеш-значения, а затем сразу же выбирается блок данных, содержащий нужные строки.
За счет исключения обращений к кластерному индексу выборка данных из хеш- кластеризованной таблицы может оказаться даже быстрее, чем из просто кластеризованной. Количество возможных хеш- значений управляется параметром HASHKEYS, задаваемым при создании кластера.
Поскольку хешированный кластер указывает прямо на строку в таблице, при создании кластера необходимо выделить место для всех возможных в нем хеш-значений.
Хешированные кластеры дают максимальный выигрыш, когда распределение строк с разными значениями хеш-ключей равномерно. Иногда уже имеется уникальное значение хеш- ключа, например столбец, содержащий уникальный идентификатор. Тогда в качестве хеш- ключа можно задать результат применения хеш-функции к значениям в этом столбце. При этом отпадает необходимость вычислять хеш- функцию в процессе выборки. Кроме того, в определении хешированного кластера можно задать собственную хеш-функцию.
В версии Oracle Database 10g появились отсортированные хешированные кластеры, в которых данные хранятся не только в кластере, основанном на хеш-значении, но и в том порядке, в котором вставлялись. Такая структура данных повышает производительность приложений, которые обращаются к данным в порядке их добавления в базу.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет