我有一个很棒的表,有超过2.000.000.000行。因此,我想在column1上创建一个索引:
CREATE INDEX "SCHEMA"."INDEX_TABLE1" ON "SCHEMA"."TABLE1" ("STR1")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOCOMPRESS LOGGING
STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;如果我执行此命令,将使用我的临时表空间,如果它已满(最大20 If ),则创建将中止。
创建索引是我的错吗?
发布于 2013-07-19 16:41:33
来自Oracle文档:
创建大型索引
创建超大型索引时,请考虑使用以下过程为索引创建分配更大的临时表空间:
使用Create tablespace或CREATE temporary TABLESPACE语句创建新的临时表空间。
使用ALTER USER语句的TEMPORARY tablespace选项使其成为新的临时表空间。
使用Create index语句创建索引。
使用Drop tablespace语句删除此表空间。然后使用ALTER USER语句将临时表空间重置为原始临时表空间。
使用此过程可以避免将通常的、通常共享的临时表空间扩展到可能影响未来性能的不合理的大小的问题。
https://stackoverflow.com/questions/16773295
复制相似问题