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