Alejandro Trujillo, Información y Tecnologías Ecuador

Oracle, Microsoft, Administración, y algo más

Direct Path vs External Table Path

Direct Path y External Table Path son mecanismos que usan los trabajos Data Pump para cargar/descargar datos hasta/desde un archivo Pump (Pump File). En este artículo vamos a identificar sus diferencias y analizar su uso con el los datafiles y el Database Buffer Cache

Direct Path

Al utilizar Direct Path estamos evadiendo el Database Buffer Cache. Cuando se hace una exportación Data Pump lee los datafiles directamente desde disco, extrae el contenido y lo formatea y lo escribe como un archivo Dump (Dump File). En la importación en cambio, Data Pump lee el archivo Dump, usa su contenido para ensamblar los bloques de los datos de tabla y los escribe directamente en los datafiles.

Cuando se escribe la información en las tablas (Durante el proceso de importación), se la hace sobre el «High-water mark» de la tabla. El «High-water mark» es un marcador en la tabla sobre el cual ningún dato ha sido escrito nunca. Cuando la carga de los datos es finalizada, Data Pump eleva el «High-water mark» para incluir los nuevos bloques escritos y las nuevas filas insertadas en la tabla son visibles para los otros usuarios (Esto es equivalente a ejecutar un COMMIT)

Cabe recalcar que en este proceso no se generan Datos Undo y si se desa se puede desactivar la generación de Datos Redo

Al utilizar Data Pump se obtienen operaciones más rápidas a nivel de rendimiento; además no tiene un gran impacto sobre los usuarios finales ya que la interacción con el SGA es mínima.

External Table Path

Al utilizar External Table Path se utiliza el Database Buffer Cache. Aunque con este mecanismo Data Pump manipula archivos que son ajenos a la base de datos, se utiliza el Database Buffer Cache como si estuviera leyendo/escribiendo desde/hasta una tabla interna. Para una exportación, Data Pump lee los bloques desde los Datafiles y los carga en el Database Buffer cache (Similar a una operación normal de SELECT); desde ahí los formatea para ser cargados en el formato del archivo Dump (Dump File). Cuando se realiza una importación, Data Pump construye sentencias DML tipo INSERT desde el contenido del archivo Dump y las ejecuta leyendo los bloques desde los Datafiles y cargándolos en el Database Buffer Cache, donde las sentencias INSERT toman lugar (Como en un proceso INSERT normal)

En lo que concierne a la base de datos los trabajos Data Pump basados en External Table lucen como operaciones normales de Selección e Inserción (SECLECTs e INSERTs respectivamente); al ser así se generan datos Redo y Undo y Commits se realizan de forma normal (Tal como cualquier opeación DML)

Aspectos a tener en cuenta

Como DBA no tenemos opción de elejir si usamos External Table Path o Direct Path. Data Pump toma la decisión de acuerdo a la complejidad de los objetos.  Estructuras simples son ejecutadas via Direct Path. Estructuras más complejas (que incluyan triggers activos, tablas agrupadas – clustered – , o tablas particionadas) forzarán a Data Pump a usar External Table Path ya que necesitan interacción directa con el SGA para resolver la complejidad.  En cualquiera de los dos casos, el arhivo Pump generado es idéntico

diciembre 5, 2008 Posted by | Oracle | , , , , | Deja un comentario