2011-08-10 121 views
11

在Oracle的現有表上創建索引是否安全?在現有表上創建索引Oracle

像這樣:

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

回答

7

是。但如果可能的話,你應該在沒有人更新表的時候這樣做,因爲他們會受到性能方面的影響(無論如何,它仍然是安全的,不會有數據損壞)。

1

是的。爲什麼不呢?

我只能在發出命令後纔想到可能的性能問題。如果表格非常大,索引可能需要一些時間,但除此之外,它應該沒問題。

11

當您在表上運行DML查詢時創建索引時,建議使用ONLINE子句。見http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm

例子:

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

從你的鏈接:_「指定ONLINE表明,數據操縱語言(DML)上表操作將創建索引的過程中被允許」 _'Create'是數據定義語言(DDL)操作,並且在線索引建立有限制。 – javaPlease42

+0

這是沒有報價和空的空間....! CREATE INDEX ix_customernumber ON lp_temp_deactMobiel(customernumber)ONLINE; – laurens