Borrar Datos Tabla ORACLE

Tengo una Tabla en ORACLE de 22 millones de registros, el problema que tengo es que intento borrar con un " DELETE from nombre tabla where fecha" aproximadamente 35.000 registros y nunca termina, osea se queda más de 5 días sin respuesta.
Quisiera saber si estoy haciendo bien el borrado y si la cantidad de registros de la tabla influye.

1 Respuesta

Respuesta
1
Si claro la cantidad de registros influye mucho en el proceso y eso afecta el performance de la base cuando son muchos datos cuando se quiere eliminar datos se usa el truncate es más rapido pero borra completamente los datos sin la posibilidad de hacer rollback ahí te tocaría hacer es un bulk delete a través de un pl
Aquí te envío un ejemplo
Declare
  TYPE ARRROWID IS TABLE OF ROWID INDEX BY BINARY_INTEGER;
  tbrows ARRROWID;
  row    PLS_INTEGER;
  cursor delete_table is select row_id from testobj_rowid ORDER BY ROWID;
BEGIN
  open delete_table;
  loop
     fetch delete_table bulk collect into tbrows limit 250;
     FORALL row IN 1 .. tbrows.count()
       DELETE TEST.TESTOBJ WHERE rowid = tbrows(row);
     commit;
     -- dbms_lock.sleep(1); /* if delete too fast */
     exit when delete_table%notfound;
  end loop;
  close delete_table;
END;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas