Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Lentitud ejecución SP desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=90435)

darkone2k4 08-06-2016 18:55:16

Lentitud ejecución SP desde Delphi
 
Salu2 amigos.

Les escribo por lo siguiente:
1.- Tengo un SP en Oracle 12c, el cual si lo ejecuto a nivel de BD con al TOAD, éste no tarda más de 2 segundos, pero cuando desde la aplicación llamo al SP con los mismos parámetros que utilicé a nivel de BD, delhpi tarda en 30 a 60 segundos en que devuelva el resultado.
He puesto un punto de interrupción antes de enviarle el último parámetro y al debugear, la demora se produce en el .open del tstoredproc.
2.- Me he asegurado de que los parámetros tengan el mismo tipo de datos tanto en el SP como en la aplicación delphi.
3.- Me llevé la query del SP a un componente tquery en delphi y el resultado es el mismo.
4.- El plan de ejecución de la query es bajo, los joins se realizan con los índices correctos, ya que por eso desde la BD el sp no tarda más de 2 segundos.

Alguno de ustedes habrá pasado por algo similar para que me puedan orientar?
Será posible que la ejecución del SP desde Delphi, altere el plan de ejecución de la query del SP?

Uso Delphi 6 y la BD es Oracle 12c Standar edition.

Estaré atento a sus comentarios.

Salu2.

bitbow 09-06-2016 00:17:51

Intenta realizar otras operaciones sobre la base de datos, podria ser un select que traiga pocos registros para validar si es la conexion o la ejecucion de proceso lo que esta tardando y si tienes posibilida intenta con otros componentes de base de datos.

Saludos.

darkone2k4 09-06-2016 00:24:03

Cita:

Empezado por bitbow (Mensaje 506004)
Intenta realizar otras operaciones sobre la base de datos, podria ser un select que traiga pocos registros para validar si es la conexion o la ejecucion de proceso lo que esta tardando y si tienes posibilida intenta con otros componentes de base de datos.

Saludos.

Gracias por responder.
El SP devuelve una lista de alumnos por sala, por lo que no devuelve más de 30 registros.
Eliminé el componente TStoredProc, lo creé de nuevo y nada.
Definí los parámetros en el TStoredProc y nada. Definí los parámetros por línea de código y nada.

Estuve pensando en utilizar una conexión del tipo ADO sólo para el formulario en el cual tengo el problema, ya que actualmente trabajo con los componentes de la BDE, para ver si eso me puede servir.

salu2.

Casimiro Notevi 09-06-2016 00:57:56

¿Cómo lo ejecutas, qué codigo, etc.?

Neftali [Germán.Estévez] 09-06-2016 09:52:41

La verdad es que no tiene mucho sentido.
Prueba a realizar la llamada utilizando un ADOQuery (para descartar cosas).

Revisa los parámeteros del componente tipo CursorLocation, CursorType,...
No deberían afectar dado que el resultado comentas que son 30 registros, pero nunca se sabe.

lgarcia 09-06-2016 14:54:20

Prueba con los componentes de Unidac, que los he probado contra Oracle 11 y trabajan con buena velocidad.

Saludos
Luis


La franja horaria es GMT +2. Ahora son las 00:51:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi