La Web del Programador: Comunidad de Programadores
 
    Pregunta:  55916 - PROBLEMAS DE LENTITUD CON ODBC DE ORACLE
Autor:  miguel gomez
Hola, tengo el siguiente problema:

Mediante ODBC tengo vinculadas las tablas de ORACLE en ACCESS 2003, me funciona todo bien. Sin embargo para hacer un UPDATE de 35.000 registros en un campo me tarda una eternidad. Ese mismo UPDATE (es un simple update de sql) lo hago desde PL/SQL y no tarda nada.

¿Alguien tiene una explicación?. Muchas Gracias.

  Respuesta:  Jose ignacio Alvarez Rodriguez
Bienvenido al maravillosos mundo del ODBC.

El ODBC es unos de los peores engendros de Microsoft. Si estas acostumbrado al Oracle, cualquier cosa que hagas via de ODEBC es mas largo que una semana sin pan.

La explicacion es que el ODBC es una "CAJA NEGRA" que se tiene que encargar de traducir las instrucciones access a instruciones de servidor de base de datos que estes usando... y ademas mantiene informado al front end que este usando ( en este caso el access). Asi que se lanza desde access la consulta, el access haces sus comprobaciones, se trae los datos desde el servidor, pagina a pagina, los modifica y se los manda al oracle, que a su vez como es una modificacion esta creando sus sistemas de recuperacion (rolback).

Basicamente el cuello de botella estan en la comunicacion, el trasiego de informacion entre el access y el oracle.....

Si puedes, esto es facilmente solventable usando en lugar de una consulta de actualizacion, una consulta especifica de SQL/ "Paso a Traves".

La consultas de paso atraves son consultas que se ejecutan directamente en el servidor de la base de datos, el access, en este caso ni se entera.

La consulta la debes hacer en el lenguaje SQL nativo de la base de datos, en este caso e oracle.

De esta forma te ahorras el trasiego de datos cleinte-servidor, la consulta se ejecuta directamente en el servidor oracle y el acces lo unico que sabe, de lo unico que se entera es de cuando empieza la ejecucion y cuando termina y en el caso en que la sql devuelva registros, estos pasan al cliente (access)

  Respuesta:  Felipe H
Revisa la configuracion de la red, puede ser que el switch de datos tenga algun problema, asi me paso a mi y cambiaron de switch y se corrigio el problema.
Otra cosa que puedes hacer es darle un update de menos registros para ver si se sigue comportando asi.

Saludos