Кластеры таблиц

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

Для создания кластеризованных таблиц сначала необходимо создать кластер. В следующем примере демонстрируется создание кластера по имени emp_dept, который будет хранить таблицы emp и dept, кластеризованные по столбцу deptno

SQL> CREATE CLUSTER emp_dept(deptno NUMBER(3))
2 TABLESPACE users;
Cluster created.
SQL>

Создать две таблицы — emp и dept — как составные части кластера можно следующим образом:

SQL> CREATE TABLE dept(
2 deptno NUMBER(3) PRIMARY KEY)
3* CLUSTER emp_dept (deptno);
Table created.
SQL>
SQL> CREATE TABLE emp(
2 empno NUMBER(5) PRIMARY KEY,
3 ename VARCHAR2(15) NOT NULL,
4 deptno NUMBER(3) REFERENCES dept)
5* CLUSTER emp_dept(deptno);
Table created.
SQL> 

Удостоверьтесь в том, что включаете в кластеры только те таблицы базы данных Oracle Database, к которым приложение часто обращается в операторах соединения.

Хеш-кластеры

При необходимости можно создать хеш-кластер и поместить в него таблицы. В этом случае строки извлекаются в соответствии с результатом некоторой хеш-функции. Для нахождения любого значения строки все, что потребуется сделать — это получить хеш значение для ключа кластера, так что единственная операция ввода-вывода выдаст данные нужной строки и обеспечит более эффективную производительность. Когда приложение использует запросы по эквивалентности, скажем, запрос, который возвращает все строки для региона 10, то хеш-кластеры являются более подходящим выбором, чем обычная таблица с индексами. Причина в том, что база данных хеширует специфицированный ключ кластера, и значение хеш-ключа непосредственно указывает на область диска,в которой база хранит строки. Ниже приведен простой пример создания хеш-кластера в базе данных Oracle Database 12c.

SQL> CREATE CLUSTER emp_dept(deptno NUMBER(3))
2 TABLESPACE users
3* HASH IS deptno HASHKEYS 200;
Cluster created.
SQL>

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

 

Вас заинтересует / Intresting for you:

Oracle Personal Edition
Oracle Personal Edition 5969 просмотров Надин Tue, 21 Nov 2017, 13:32:12
Oracle alerts: генерируемые се...
Oracle alerts: генерируемые се... 7242 просмотров Алексей Вятский Tue, 21 Nov 2017, 13:18:05
Установка Oracle 11g на Linux
Установка Oracle 11g на Linux 22984 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Базы данных Oracle: что нужно ...
Базы данных Oracle: что нужно ... 64949 просмотров Ирина Светлова Thu, 24 Jun 2021, 20:01:45
Войдите чтобы комментировать

 аватар
ответил в теме #10440 2 года 2 мес. назад
blue diamond pill with 100 on it viagarag.com -
generic viagra without a doctor prescription
female viagra ingredients
buy viagra from canada generic viagra best price viagra italien rezeptfrei
admin аватар
admin ответил в теме #10342 2 года 3 мес. назад
Отличная статья про кластеры таблиц Oracle. Конечно, они много где применяются при разработке приложений, в том числе облачных.
1dz аватар
1dz ответил в теме #8506 6 года 10 мес. назад

ildergun пишет: Комрадэн, кто-нибудь из Вас применял кластеры таблиц в базах данных Oracle в реальной жизни?

Мне не доводилось. Тема интересная, делитесь опытом, форумчане!)
ildergun аватар
ildergun ответил в теме #8490 6 года 11 мес. назад
Комрадэн, кто-нибудь из Вас применял кластеры таблиц в базах данных Oracle в реальной жизни?