2011-08-10 12 views
11

Czy można bezpiecznie utworzyć indeks na istniejącej tabeli w Oracle?Utwórz indeks na istniejącej tabeli Oracle

Jak to:

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

Odpowiedz

7

Tak. Ale jeśli to możliwe, powinieneś to zrobić, podczas gdy nikt nie aktualizuje tabeli, ponieważ poniosłyby one straty wydajności (nadal jest to bezpieczne, nie będzie korupcji danych).

1

Tak. Dlaczego by tak nie było?

Mogę myśleć tylko o możliwych problemach z wydajnością zaraz po wydaniu polecenia. Jeśli stół jest bardzo duży, indeksowanie może zająć trochę czasu, ale poza tym powinno być w porządku.

11

Klauzula ONLINE jest zalecana podczas tworzenia indeksu, gdy kwerendy DML są uruchamiane w tabeli. Zobacz http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm

Przykład:

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

ze swojego linku: _ „Określ ONLINE, aby wskazać, że język manipulacji danymi (DML) operacje na stole będzie dozwolony podczas tworzenia indeksu” _ 'Create' jest operacja DDL (Data Definition Language) i istnieją ograniczenia w budowaniu indeksu online. – javaPlease42

+0

to bez cytatu i pustej przestrzeni ....! UTWÓRZ INDEKS ix_customernumber ON Lp_temp_deactMobiel (customernumber) ONLINE; – laurens

Powiązane problemy