Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/01/2010, 11:08
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 13 años, 5 meses
Puntos: 43
Respuesta: Backup de tablas grandes

Cita:
Iniciado por Alextroy Ver Mensaje
Hola.

Necesito hacer una backup periodico de una tabla de auditoria enorme.
Se supone que tengo que almacenar toda la información que ha registrado esa tabla a partir de un mes hacia atrás en una tabla similar en otro esquema, y eliminar la información que he guardado.

Propuse hacer un script que crease una tabla igual en otro esquema y la llenase de datos con un comando del tipo INSERT INTO TABLE (select * from..... where...) para luego eliminar los registros de la tabla de producción. Pero tras probar este metodo me comunican que es demasiado lento y no es viable.

Queria saber si algúen tiene experiencia con algún caso parecido y como ha podido solucionarlo. Mi conocimiento es bastante limitado, y mas o menos a trompicones voy sacando las cosas, pero lo referente a mejora de rendimiento, optimizacion de recursos y demás se me queda algo grande.

Un saludo

Pues mira, la solucion que tu has propuesto me parece la mas coherente y la mas lógica : Acotar los datos que quieres traspasar y usar un INSERT.... SELECT. ¿ que es lento ?, no se a que llaman lentitud los que te han dicho eso. Y tampoco sé el volumen de datos que quieres traspasar.

Estos dias estoy haciendo algo parecido. El primer paso era pasar todos los datos a procesar a una temporal ( Datos de un año entero, unos 356.000.000 de registros ).

Lo que hize fué crear una tabla auxiliar identica a la original en un tablespace aparte ( solo para mi ), poner tablespace y tabla en NOLOGGING y tirar el INSERT SELECT :

INSERT /*+ APPEND*/ INTO TABLA_AUXILIAR
SELECT * FROM TABLA_ORIGEN
WHERE FECHA BETWEEN TO_DATE('01012009' ,'DDMMYYYY') AND TO_DATE('31122009' ,'DDMMYYYY')
/


El resultado fué que me insertó unos 356.000.000 de registros en una hora mas o menos. ¿ Esto se puede calificar de lento ?, yo creo que no.

No se si te he ayudado en algo........................