Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/10/2011, 18:12
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Respuesta: Impdp bd oracle 10g

Cita:
Sin embargo, a mí por experiencia siempre me ha dado menos problemas la solución de borrar por completo la base de datos, recrearla vacía y después hacer el import.
Ciertamente un drop table, create table e insert es el método más seguro en la importación, pero no es óptimo en todos los escenarios, la seguridad tiene un costo y puede que supere los beneficios, tienes casos como:

1. Importar datos incrementales, comenté el ejemplo de modelos históricos o data warehouse donde se necesita importar datos nuevos manteniendo los actuales, en este caso es más eficiente insertar solo los datos nuevos que eliminar y crear las tablas e insertar los datos viejos más los nuevos (parámetro TABLE_EXISTS_ACTION=APPEND).

2. Importar datos reemplazando los existentes, en el caso de necesitar vaciar una tabla antes de importar, y si la estructura de la tabla no cambia o no tiene relaciones FK/PK, es más eficiente hacer un truncate table e importar que hacer un drop table, create table e importar (parámetro TABLE_EXISTS_ACTION=TRUNCATE)

3. Importar tablas nuevas, en el caso de ampliar un modelo de datos existente manteniendo intactas las tablas actuales, es más eficiente crear solo las tablas nuevas e importar que hacer un drop para crear e importar las tablas nuevas más la viejas (parámetro TABLE_EXISTS_ACTION=SKIP).

Un drop de todo más un import full es simple, fácil y seguro, en general va bien para bases de datos pequeñas o medianas. Afinar la importación tiene más riesgo y complejidad pero es recomendado para bases de datos grandes donde recrear todas las tablas llevaría tiempos inviables.

Saludos