在现有Oracle表上创建索引

在现有Oracle表上创建索引,oracle,indexing,Oracle,Indexing,在oracle中的现有表上创建索引安全吗 像这样: CREATE INDEX table_sample_ix03 ON table_sample ( col4, col22 ) TABLESPACE data STORAGE ( INITIAL 10M NEXT 2M MINEXTENTS 1 MAXEXTENTS 100 PCTINCREASE 0 ) ; 对。但是如果可能的话,您应该在没有人更

在oracle中的现有表上创建索引安全吗

像这样:

CREATE INDEX table_sample_ix03
      ON table_sample
(
  col4,
  col22
)
TABLESPACE data
STORAGE
(
  INITIAL        10M    NEXT          2M
  MINEXTENTS      1     MAXEXTENTS  100
  PCTINCREASE     0
)
;

对。但是如果可能的话,您应该在没有人更新表的情况下执行此操作,因为他们会受到性能方面的影响(无论如何,这样做仍然是安全的,不会出现数据损坏)。

是的。为什么不呢


我只能在发出命令后考虑可能的性能问题。如果表非常大,则索引可能需要一些时间,但除此之外,还应该可以。

在表上运行DML查询时创建索引时,建议使用ONLINE子句。看

例如:

CREATE  INDEX "MYINDEX" ON "MYTABLE" ("MYCOLUMN")  ONLINE;

在您的链接中:“联机指定以指示在创建索引期间允许对表执行数据操作语言(DML)操作。”
Create
是一种数据定义语言(DDL)操作,对联机索引的生成有限制。这没有引号和空白。。。。!在线创建lp_temp_deactMobiel(customernumber)上的索引ix_customernumber;最好在现有表上创建索引,并将“PARALLEL”子句设置为某个值,以便在海量数据上更快地创建索引。稍后您可以更改索引并设置“NO PARALLEL”。在遗留项目中,我们遵循这种方法。