我有必須被劃分成宿舍,每年從2009年到2013年TimeData表,並沒有爲今後幾年表分區,哪個更好?
我做了2種方法:
CREATE TABLE TimeData (
id NUMBER PRIMARY KEY NOT NULL,
day_name varchar(45),
day NUMBER(2),
month NUMBER(2),
quart NUMBER(1),
year NUMBER(4)
)
PARTITION BY LIST (year)
SUBPARTITION BY LIST (quart)
(
SUBPARTITION q1 values (1),
SUBPARTITION q2 values (2),
SUBPARTITION q3 values (3),
SUBPARTITION q2 values (4)
)
(
SUBPARTITION y_09 VALUES (2009),
SUBPARTITION y_10 VALUES (2010),
SUBPARTITION y_11 VALUES (2011),
SUBPARTITION y_12 VALUES (2012),
SUBPARTITION other VALUES (DEFAULT),
) ;
CREATE TABLE TimeData (
id NUMBER PRIMARY KEY NOT NULL,
day_name varchar(45),
day NUMBER(2),
month NUMBER(2),
year NUMBER(4)
)
PARTITION BY LIST (year)
SUBPARTITION BY RANGE (month)
(
SUBPARTITION q1 values less than(4),
SUBPARTITION q2 values less than(7),
SUBPARTITION q3 values less than(10),
SUBPARTITION q2 values less than(13)
)
(
SUBPARTITION y_09 VALUES (2009),
SUBPARTITION y_10 VALUES (2010),
SUBPARTITION y_11 VALUES (2011),
SUBPARTITION y_12 VALUES (2012),
SUBPARTITION other VALUES (DEFAULT),
);
兩種方法在2012年後保持分區,我無法弄清楚如何克服這個問題
但問題是,'quart'字段是否使它更好?少計算也許
或沒有它,更少的存儲?!
**更新
第三位的方法只是突然出現在我的頭上,就是有16個分區(4個季度* 4歲)以及17分區值小於(MAXVALUE)..這樣我可以在來的永遠劃分的東西,對吧?
爲什麼要在某個點後停止分區?我會假設你將來仍然會遇到數據集大小問題。也許宿舍應該有意見(或許)?我認爲分區的意義在於,表格可以像平常一樣進行訪問,即使它在物理上分裂了...... – 2011-12-27 21:05:23