大表处理:
实例:
create table hs_trade_list_tb --建表
(
......
subacct varchar2(32),
trandate varchar2(10),
......
)
partition by range(trandate) --按时间分区
(
partition date201001 values less than ('201001%'),
partition date201002 values less than ('201002%'),
partition date201003 values less than ('201003%'),
......
partition date2013 values less than (MAXVALUE)
)
tablespace BRASDB02;--指定表空间(单独分配个表空间)
--建索引
create index ind_tList_trandate on hs_trade_list_tb(trandate) local ;
create bitmap index ind_tList_ctflg on hs_trade_list_tb(ctflg) local;
--分析表(该步骤勿漏)
analyze table hs_trade_list_tb compute statistics for all indexes;
analyze table hs_trade_list_tb compute statistics for all indexed columns;
analyze table hs_trade_list_tb compute statistics for table;
--得到全年周末
--建表
create table TEST2
(
DAYS VARCHAR2(10),
END VARCHAR2(1)
)
--插入日期
insert into test2(days)
select to_char(to_date('20110101', 'yyyymmdd') + rownum - 1,'yyyy-mm-dd')
from all_objects
where rownum <= to_char(to_date('20111231', 'yyyymmdd'), 'ddd')
;
--加入星期几
update test2 t set t.end=(SELECT TO_CHAR(to_date(t.days,'yyyy-mm-dd'),'D') FROM DUAL);
--过滤工作日
delete test2 t where t.end<7 and t.end>1;