关于分区索引的问题 大家帮忙看看 感激不尽
由于数据量比较大 如果不建分区索引索引一直堆着很大 所以想建分区 索引
但建好之后 发现trucnate掉某个分区之后 那个分区的索引还在 想问问大家怎么写语句可以让truncate掉分区的时候把分区索
引也drop掉
我的建表 建索引的语句如下:
CREATE TABLE TB_L_BUSI_LOG
(
LOG_ID VARCHAR2(14),
OP_TIME DATE,
BUS_TYPE VARCHAR(2),
ACCOUNT_ID VARCHAR2(20),
USER_ID VARCHAR2(20),
MSISDN VARCHAR2(11),
CHANNEL_ID VARCHAR2(8),
CPID VARCHAR2(6),
CP_SERVICE_ID VARCHAR2(11),
CONSUME_CODE VARCHAR2(8),
MONEY NUMBER(8,2),
POINT NUMBER(8,2),
POINT_FACT NUMBER(8,2),
PREFERENTIAL_PRICE NUMBER(1),
PREFERENTIAL_RULE_ID NUMBER(6),
RESULT NUMBER(6)
)
PARALLEL
PARTITION BY RANGE(op_time) SUBPARTITION BY HASH(account_id)
(
PARTITION PART_BUSI_200704 VALUES LESS THAN(TO_DATE('2007-5-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200705 VALUES LESS THAN(TO_DATE('2007-6-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200706 VALUES LESS THAN(TO_DATE('2007-7-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200707 VALUES LESS THAN(TO_DATE('2007-8-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200708 VALUES LESS THAN(TO_DATE('2007-9-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200709 VALUES LESS THAN(TO_DATE('2007-10-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01,
PARTITION PART_BUSI_200710 VALUES LESS THAN(TO_DATE('2007-11-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING01
);
--创建全局分区索引(op_time)
CREATE INDEX IDX_BUSI_GLOBAL_DATE ON TB_L_BUSI_LOG(op_time)
PARALLEL
GLOBAL PARTITION BY RANGE(op_time)
(
PARTITION IDX_BUSI_GLOBAL_DATE_200704 VALUES LESS THAN(TO_DATE('2007-5-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200705 VALUES LESS THAN(TO_DATE('2007-6-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200706 VALUES LESS THAN(TO_DATE('2007-7-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200707 VALUES LESS THAN(TO_DATE('2007-8-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200708 VALUES LESS THAN(TO_DATE('2007-9-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200709 VALUES LESS THAN(TO_DATE('2007-10-01','YYYY-MM-DD')) TABLESPACE TBS_BILLING_INDX01,
PARTITION IDX_BUSI_GLOBAL_DATE_200710 VALUES LESS THAN(MAXVALUE) TABLESPACE TBS_BILLING_INDX01
);
感激不尽!
------解决方案---------------------- 当然还在啰,因为你创建的是“全局”分区索引嘛!
------解决方案--------------------
创建分区索引的时候,通常使用的关键字是LOCAL而不是GLOBAL。
一个是创建本地分区索引,一个是创建全局分区索引。
通常使用的是前者。
所以,说,你的索引创建错了。
另外,你的要求也好奇怪啊。
对分区做truncate操作的时候,凭什么要求对分区的索引做drop操作啊?
你明白truncate和drop之间的区别么?
谢谢。
------解决方案--------------------我是来看高手的