Блоки переполнения кластера хэша Oracle - PullRequest
1 голос
/ 26 апреля 2010

При вставке большого количества строк в один хеш-кластер таблицы в Oracle он заполнит блок любыми значениями, которые хэшируют это хеш-значение, а затем начнет использовать блоки переполнения.

Эти блоки переполнения перечислены как связанные с основным блоком, но я не могу найти подробную информацию о том, как они распределены или связаны.

Когда блок переполнения выделен для значения хеш-функции, является ли этот блок исключительно выделенным для этого значения хеш-функции, или блоки переполнения используются в качестве пула, и различные значения хеш-функции могут затем начать использовать один и тот же блок переполнения.

Как контролируется свободное пространство в цепочке - при этом, когда данные продолжают вставляться, нужно ли обходить всю цепочку, чтобы выяснить, есть ли в ней свободное место в текущей цепочке переполнения, а затем, если он не находит ничего, затем он выбирает выделить новый блок?

1 Ответ

1 голос
/ 26 апреля 2010

Из Руководства по понятиям (прокрутите вниз до «Хэш-хранилище кластера»:

Когда пользователи вставляют строки в кластер для отдела 43, база данных не может сохранить эти строки в блоке 100, который заполнен. База данных связывает блок 100 с новым блоком переполнения, скажем, блоком 200, и сохраняет вставленные строки в новом блоке. Оба блока 100 и 200 теперь имеют право хранить данные для любого отдела. Как показано на Рисунке 2-7, для запроса из отдела 20 или 43 теперь требуется два ввода-вывода для извлечения данных: блок 100 и связанный с ним блок 200.

Это означает, что блок переполнения выделен исключительно для этого хеш-значения.

Я не знаю ответа на ваш второй вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...