Помимо очевидного, кто-нибудь может объяснить, что отличается между многоколоночным разбиением и использованием подраздела?И какой из них лучше для сценария OLTP?Подробнее см. Управление секционированными таблицами и индексами в Руководстве администратора базы данных Oracle.
(тупой) пример таблицы, разбитой на несколько столбцов:
CREATE TABLE demo1
(
year NUMBER,
month NUMBER,
day NUMBER,
instance NUMBER, /* assuming this can only be 1 or 2 */
other1 VARCHAR2(50),
other2 VARCHAR2(50),
other3 VARCHAR2(50)
)
PARTITION BY RANGE (year,instance)
(
PARTITION data_2009_inst1 VALUES less than (2009,2) TABLESPACE data_2009,
PARTITION data_2009_inst2 VALUES less than (2009,3) TABLESPACE data_2009,
PARTITION data_2010_inst1 VALUES less than (2010,2) TABLESPACE data_2010,
PARTITION data_2010_inst2 VALUES less than (2010,3) TABLESPACE data_2010,
PARTITION data_2011_inst1 VALUES less than (2011,2) TABLESPACE data_2011,
PARTITION data_2011_inst2 VALUES less than (2011,3) TABLESPACE data_2011
);
Аналогично, пример таблицы с разделами:
CREATE TABLE demo2
(
year NUMBER,
month NUMBER,
day NUMBER,
instance NUMBER, /* assuming this can only be 1 or 2 */
other1 VARCHAR2(50),
other2 VARCHAR2(50),
other3 VARCHAR2(50)
)
PARTITION BY RANGE (year)
SUBPARTITION BY LIST (instance) /* Cannot subpartition by range in 10gR2 */
SUBPARTITION template
(
SUBPARTITION i1 VALUES (1),
SUBPARTITION i2 VALUES (2),
SUBPARTITION ix VALUES (DEFAULT)
)
(
PARTITION data_2009 VALUES less than (2010) TABLESPACE data_2009,
PARTITION data_2010 VALUES less than (2011) TABLESPACE data_2010,
PARTITION data_2011 VALUES less than (2012) TABLESPACE data_2011
);
В чем разница между этими таблицами?Разве они не "логически" одинаковы?Я знаю, что гораздо проще добавить разделы в demo2, так как вам нужно разделить разделы в demo1, чтобы получить больше разделов с течением времени.Что лучше в сценарии OLTP?
Кстати, причина, по которой я разбиваю по номеру INSTANCE, связана с Oracle RAC.Я пытаюсь создать «привязку экземпляра», чтобы остановить «горячий блок» от замедления базы данных, поскольку они должны быть отправлены через межсоединение между узлами RAC.(Мы эмпирически доказали, что это имеет значение в нашем тестировании).