структура таблицы
CREATE TABLE T1
(
ID INTEGER NOT NULL,
IdUser INT,
TIME DATE NOT NULL,
ADRESS VARCHAR2(15 BYTE),
.
.
.
)
В таблицу за месяц попадает примерно 300млн записей
Выборки из нее осуществяются по Time и IdUser
т.е. запросы вида select IdUser, Sum(XXX) from T1 where Trunc(Time1,'HH') between XXXX and YYYY group by IdUser, Trunc(Time1,'HH')
Партиционировал таблицу след образом
PARTITION BY RANGE (TIME)
(
PARTITION T1_200612 VALUES LESS THAN (TO_DATE(' 2007-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
NOLOGGING
NOCOMPRESS
TABLESPACE T1_200612
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
BUFFER_POOL DEFAULT
),
PARTITION T1_200701 VALUES LESS THAN (TO_DATE(' 2007-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
NOLOGGING
NOCOMPRESS
TABLESPACE T1_200701
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
BUFFER_POOL DEFAULT
),
и т.д.
Создал партиционированный индекс
CREATE INDEX T1$TIME ON T1
(TRUNC("TIME",'fmhh'))
INITRANS 2
MAXTRANS 255
LOCAL (
PARTITION IDX_T1_200612
NOLOGGING
NOCOMPRESS
TABLESPACE IDX_T1_200612
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
BUFFER_POOL DEFAULT
),
PARTITION IDX_T1_200701
NOLOGGING
NOCOMPRESS
TABLESPACE IDX_T1_200701
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
BUFFER_POOL DEFAULT
),
и т.д.
но к сожалению элементарные запросы выполняются очень долго,
причем запрос вида
select time from T1 partition(T1_200712) where Trunc(Time,'HH')>='01.12.2007'
вроде идет по индексу - но результат все тотже - ужасно медленно (минут 20) выполняется
Plan
SELECT STATEMENT ALL_ROWSCost: 2 M Bytes: 391 M Cardinality: 5 M
3 PARTITION RANGE SINGLE Cost: 2 M Bytes: 391 M Cardinality: 5 M Partition #: 1 Partitions accessed #13
2 TABLE ACCESS BY LOCAL INDEX ROWID TABLE T1 Cost: 2 M Bytes: 391 M Cardinality: 5 M Partition #: 2 Partitions accessed #13
1 INDEX FULL SCAN INDEX T1$TIME Cost: 261 K Cardinality: 34 M Partition #: 3 Partitions accessed #13