Por lo tanto, a menudo tengo que cargar datos en tablas de espera para ejecutar algunas comprobaciones de validación de datos y luego devolver los resultados. Normalmente, creo la tabla de espera, luego un archivo de control sqlldr y cargo los datos en la tabla, luego ejecuto mis consultas. ¿Hay alguna razón por la que debería usar tablas externas para cosas en su lugar? ¿De qué manera me harán la vida más fácil?Tablas externas vs SQLLoader
Respuesta
La gran ventaja de las tablas externas es que podemos consultarlas desde el interior de la base de datos utilizando SQL. Entonces podemos ejecutar las comprobaciones de validación como sentencias SELECT sin la necesidad de una tabla de espera. De manera similar, si necesitamos hacer alguna manipulación de los datos cargados, es casi siempre más fácil hacerlo con SQL en lugar de los comandos SQLLDR. También podemos administrar cargas de datos con rutinas DBMS_JOB/DBMS_SCHEDULER, lo que reduce aún más la necesidad de scripts de shell y trabajos de cron.
Sin embargo, si ya tiene un proceso maduro y estable utilizando SQLLDR, entonces reconozco que es poco probable que obtenga enormes beneficios de la migración a tablas externas.
También hay algunos casos, especialmente si está cargando millones de filas, donde el enfoque SQLLDR puede ser considerablemente más rápido. Sin embargo, la diferencia no será tan marcada con las versiones más recientes de la base de datos. Espero totalmente que SQLLDR eventualmente se desaproveche a favor de tablas externas.
Si nos fijamos en la sintaxis de la tabla externa, parece sospechosamente a SQL * sintaxis del archivo de control de la cargadora :-)
Si la tabla externa va a ser utilizado repetidamente en varias consultas que podría ser más rápido para cargar una tabla (como lo está haciendo ahora) en lugar de volver a explorar su tabla externa para cada consulta. Como señala @APC, Oracle está haciendo mejoras en ellos, por lo que depende de su versión de DB YMMV.
Sospechosamente similar, aunque no equivalente. :) http://stackoverflow.com/questions/898872/oracle-external-tables-advanced-flat-file-layout –
Buen punto. Me pregunto cuánto SQL * Loader código estaba detrás de al menos la inicial ir a tablas externas ... – DCookie
@DCookie. Está desarrollado por el mismo equipo :) – BobC
Usaría tablas externas por su flexibilidad.
Es más fácil modificar la fuente de datos sobre ellos para ser un archivo diferente alter table ... location ('my_file.txt1','myfile.txt2')
Usted puede hacer inserciones multitable, fusiones, ejecutarlo a través de una función pipeline etc ...
consulta en paralelo es más fácil. ..
también establece dependencias mejor ...
el código se almacena en la base de datos por lo que automáticamente respaldado ...
Otra cosa que puede hacer con tablas externas es leer archivos comprimidos. Si sus archivos están comprimidos gzip, por ejemplo, puede usar la directiva PREPROCESSOR dentro de su definición de tabla externa, para descomprimir los archivos a medida que se leen.
- 1. Particionar tablas mySQL que tiene claves externas?
- 2. (combinaciones externas múltiples) unir tablas en Oracle
- 3. MySQL terminología "restricciones" vs diferencia "claves externas"?
- 4. Oracle 11gR2 cargando varios archivos: sqlldr o tablas externas?
- 5. MySQL - Cómo insertar en varias tablas con claves externas
- 6. Manejo de caracteres UTF-8 en tablas externas de Oracle
- 7. Oracle tablas externas - Especificar nombre de archivo dinámico
- 8. Cómo eliminar filas en tablas que contienen claves externas a otras tablas
- 9. Tablas hash VS matrices asociativas
- 10. descartar claves externas duplicadas
- 11. Pregunta de posicionamiento CSS - Tablas vs. Absoluto vs. DL
- 12. DIV vs. Tablas o CSS vs. Ser estúpido
- 13. tablas temporales globales - SQL Server vs Oracle
- 14. tipo MySQL ENUM vs unir tablas
- 15. MySQL: Transacciones vs Tablas de bloqueo
- 16. UNIDAS vs SELECCIONAR de muchas tablas
- 17. Divs vs tablas para datos tabulares
- 18. ¿Debo usar claves externas?
- 19. ¿Debería realmente usar claves externas?
- 20. ¿Cómo funcionan las claves externas?
- 21. Teclas externas y errores MySQL
- 22. Cómo visualizar el esquema de tablas de la base de datos en VS
- 23. claves externas de MySQL: ¿cómo hacer que las tablas se realicen de forma individualizada?
- 24. Forzar InnoDB para volver a verificar claves externas en una tabla/tablas?
- 25. ¿El orden de las tablas en una unión importa, cuando se usan las uniones IZQUIERDAS (externas)?
- 26. TDD con HSQLDB - eliminación de claves externas
- 27. Django: claves externas distintas
- 28. funciones externas en haskell?
- 29. Copias de seguridad externas
- 30. Funciones externas en C++
+1, todos son buenos puntos. – DCookie