Tengo 471 archivos que suman unos 100 GB. Los archivos son "\ t" por separado, con los datos de transacción en el siguiente formato:Oracle 11gR2 cargando varios archivos: sqlldr o tablas externas?
char(10) not null,
char(8) not null,
char(1) not null,
char(4) not null,
number not null,
char(1) not null,
char(1) not null,
char(1) not null,
number not null
El orden de las transacciones en los archivos es importante y debe ser preservada, a ser posible con un identificador de clave primaria. Inicialmente, cargué estos archivos con sqlldr pero lleva mucho tiempo. Recientemente aprendí sobre tablas externas. Desde una perspectiva estratégica, ¿qué método es mejor? ¿Cómo funciona la tabla externa? Gracias.
* ¿Cómo funciona la tabla externa * Eso es totalmente documentado en el manual: http://docs.oracle.com/cd/E11882_01/server.112/e22490/et_concepts.htm –
¿por qué sqlldr tomaría mucho tiempo? Pruebe la carga directa y asegúrese de que sus datos estén en la misma subred o SAN (o, básicamente, no empujen los datos a través de un conducto pequeño a través de la red, como un servidor en NJ que presiona a un DB en CA). Algunas restricciones para la carga directa, pero MUCHO más rápido. – tbone
Caluché que sqlldr se está cargando a una velocidad de 85 millones de filas por hora. Basado en hablar con un hombre, esto parece razonable, pero él no es un experto. Hay un compromiso cada 300k filas. Una secuencia de oráculo genera una clave principal en el inserto. El orden de los datos es importante y la clave conserva el orden. Los archivos están en una unidad en el mismo servidor que la base de datos. ¿Se puede lograr un mejor índice? –