2012-05-12 2 views
2

Я создал список диапазона секционированной таблицы:Возможно ли отслеживание по протоколу PCT (Partition Change Tracking) для секционированных таблиц диапазона списка?

CREATE TABLE WHREST_PRT(
    RCNUM  NUMBER  NOT NULL, 
    WHNUM  NUMBER  NOT NULL, 
    WARE  VARCHAR2(10 CHAR) NOT NULL, 
    DATEM  DATE   NOT NULL, 
    QUANTITY NUMBER  NOT NULL, 
    DATEOPER DATE   NOT NULL 
) 
PARTITION BY LIST(RCNUM) 
SUBPARTITION BY RANGE(DATEM)( 
    PARTITION P127 VALUES (127) COMPRESS FOR OLTP ( 
     SUBPARTITION P127_PRE_2003 VALUES LESS THAN (TO_DATE('01.01.2003','DD.MM.YYYY')) COMPRESS FOR OLTP, 
     SUBPARTITION P127_Q1_2003 VALUES LESS THAN (TO_DATE('01.04.2003','DD.MM.YYYY')) COMPRESS FOR OLTP 
    ), 
    ... 
    PARTITION P997 VALUES (997) COMPRESS FOR OLTP ( 
     SUBPARTITION P997_PRE_2003 VALUES LESS THAN (TO_DATE('01.01.2003','DD.MM.YYYY')) COMPRESS FOR OLTP, 
     SUBPARTITION P997_Q1_2003 VALUES LESS THAN (TO_DATE('01.04.2003','DD.MM.YYYY')) COMPRESS FOR OLTP 
    ) 
) 

Затем я вручную добавил еще четверть подразделы (до 01-JAN-2015) к каждому из 13 разделов универмагов. Теперь общее количество субпартлонов составляет 602.

Затем заполнили его данными.

Теперь я пытаюсь создать материализованное представление:

CREATE MATERIALIZED VIEW MV_WHREST_SUM_QNT ( 
    RCNUM, WARE, DATEM, SUM_QNT, CNT_CNT, CNT 
) PARALLEL 
BUILD IMMEDIATE 
REFRESH FAST ON DEMAND 
ENABLE QUERY REWRITE 
AS 
SELECT RCNUM, 
    WARE, 
    DATEM, 
    SUM(QUANTITY), 
    COUNT(QUANTITY), 
    COUNT(*) 
FROM WHREST_PRT 
WHERE WHNUM > 1 
GROUP BY RCNUM, WARE, DATEM 

Но результаты DBMS_MVIEW.EXPLAIN_MVIEW говорят, что РСТ не представляется возможным со следующим сообщением:

2070 PCT not supported with this type of partitioning 

Интересно, почему РСТ невозможно в моем случае. Поиск этого сообщения вместе с «составным разделением списка диапазонов» не принесло ничего полезного.

Версия Oracle - 11.2.0.3.

ответ

2

Возможно, это ошибка. Идентификатор статьи 1281826.1 в моей службе поддержки Oracle перечисляет типы секционирования, которые имеют право на отслеживание изменений раздела. Это не объясняет, почему некоторые типы разделов не допускаются. Хотя в нем есть ссылка на ошибку для другого типа разделов, которая также не допускается.

+0

От поддержки Oracle (по указанному вами идентификатору): «... только определенные типы секционированных таблиц имеют право на PCT. Документация Oracle Datawarehousing Guide (хотя версия 11.2) в настоящее время не содержит информации об этом ограничении. следующие типы секционированных таблиц имеют право на получение РСТ в 10,1 через 11,2: ** - ** Диапазон раздела без суб-раздел ** - ** Диапазон разделов с подсписке-раздел ** - ** Диапазон разделов с подсектором Hash ** - Список разделов без подразделов ** " – AntonLosev

0

Я бы попробовать пару вещей:

  1. сдвигом во DATEM быть второй столбец группы по п
  2. удалить WHNUM предикат.
  3. Добавить столбец DBMS_MVIEW.PMARKER

Вряд ли работать, чтобы быть честным, но я бы дал им плоскодонки, чтобы увидеть, если вы что-то ударил без документов.

 Смежные вопросы

  • Нет связанных вопросов^_^