微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。