Oracle 更改子分区 lob 索引的默认属性

问题描述

如何更改initial_extent 和next_extent 的每日范围分区lob 索引? lob 索引的索引子分区的认初始大小远大于所需。所以新的分区出现了,单个初始盘区很大,占用了存储空间,没有用。

示例

CREATE TABLE EVENT
(
  ID VARCHAR2(100) NOT NULL,STAMP timestamp default systimestamp not null,EVENT blob,SUBPART NUMBER(4) NOT NULL
)TABLESPACE tbs1 STORAGE(INITIAL 1k NEXT 1k)
LOB (event) STORE AS
( TABLESPACE tbs1 STORAGE(INITIAL 1k NEXT 1k))
 
PARTITION BY RANGE (STAMP)
  INTERVAL(NUMTODSINTERVAL(1,'day'))
    SUBPARTITION BY LIST (SUBPART)
       SUBPARTITION TEMPLATE
      (
    SUBPARTITION EVENTS_0 VALUES (0),SUBPARTITION EVENTS_1 VALUES (1))
( PARTITION p0 VALUES LESS THAN (TO_DATE('01-01-2021','dd-mm-yyyy')))
  ;
INSERT INTO EVENT (ID,SUBPART,event) VALUES ('111111','0','aaaaaa');
INSERT INTO EVENT (ID,event) VALUES ('111112','1','dddddd');
commit;
select user_lobs.table_name,column_name,segment_name,index_name,partitioned from user_lobs;
    TABLE_NAME  COLUMN_NAME  SEGMENT_NAME               INDEX_NAME                PARTITIONED
    EVENT       EVENT        SYS_LOB0555878337C00003$$  SYS_IL0555878337C00003$$  YES
select index_name,partition_name,subpartition_name,high_value,initial_extent,next_extent from user_ind_subpartitions where index_name='SYS_IL0555878337C00003$$';

INDEX_NAME               PARTITION_NAME    SUBPARTITION_NAME    HIGH_VALUE INITIAL_EXTENT NEXT_EXTENT
SYS_IL0555878337C00003$$ SYS_IL_P340391852 SYS_IL_SUBP340391850 0          65536          8192
SYS_IL0555878337C00003$$ SYS_IL_P340391852 SYS_IL_SUBP340391851 1          65536          8192
SYS_IL0555878337C00003$$ SYS_IL_P340391861 SYS_IL_SUBP340391859 0          65536          1048576
SYS_IL0555878337C00003$$ SYS_IL_P340391861 SYS_IL_SUBP340391860 1          65536          1048576
alter index SYS_IL0555878337C00003$$ MODIFY DEFAULT ATTRIBUTES storage (initial 1 next 1);
...
    ORA-22864: cannot ALTER or DROP LOB indexes
    *Cause:    An attempt was made to ALTER or DROP a LOB index.
    *Action:   Do not operate directly on the system-defined LOB index. Perform operations on the corresponding LOB column.       

好的。

alter table event MODIFY DEFAULT ATTRIBUTES lob (event) ( storage ( initial 1 next 1) index (storage (initial 1 next 1)));
ORA-02203: INITIAL storage options not allowed
*Cause:    The user attempted to alter the INITIAL
           storage option of a table,cluster,index,or rollback segment.
           These options may only be specified when the object is created.
*Action:   Remove these options and retry the statement.

它适用于 lob 本身:

alter table event MODIFY DEFAULT ATTRIBUTES lob (event) ( storage ( initial 1 next 1) );
    Table EVENT altered.

但是如何更改分区 lob 索引的初始和下一个范围? 表存在且巨大。所以娱乐是一个糟糕的选择。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)