2011-08-10 23 views
11

¿Es seguro crear un índice en una tabla existente en Oracle?Crear índice en la tabla existente Oracle

De esta manera:

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

Respuesta

7

Sí. Pero si es posible, debe hacerlo mientras nadie está actualizando la tabla, ya que sufrirían en cuanto al rendimiento (aún así es seguro hacerlo, no habrá corrupción de datos).

1

Sí. ¿Por qué no sería?

Solo puedo pensar en posibles problemas de rendimiento justo después de emitir el comando. Si la tabla es muy grande, la indexación puede llevar algo de tiempo, pero aparte de eso, debería estar bien.

11

La cláusula ONLINE se recomienda cuando crea el índice mientras se están ejecutando consultas DML en la tabla. Ver http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm

Ejemplo:

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

Desde su enlace: _ "Especificar LÍNEA para indicar que la manipulación de datos de idioma (DML) se les permitirá operaciones en la mesa durante la creación del índice" _ 'create' es una operación de lenguaje de definición de datos (DDL) y restricciones en la creación de índices en línea. – javaPlease42

+0

sin cita y espacio vacío ....! CREATE INDEX ix_customernumber ON lp_temp_deactMobiel (número de cliente) EN LÍNEA; – laurens

Cuestiones relacionadas