Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Desde una SP hacer select a un cursor (https://www.clubdelphi.com/foros/showthread.php?t=92401)

jars 19-10-2017 22:49:21

Desde una SP hacer select a un cursor
 
Hola amigos.
En una SP uso "for execute statement SCRIPT1 into...." en la que hago sum de campos agrupados por usuario, a continuación hago un select a otra tabla haciendo un count y un sum con una condición para el usuario actual. Todo funciona bien pero demora muchisimo pese a que los campos involucrados tiene su indice.
Lo que quisiera poder probar es, de ser posible, en la SP crear previamente un cursor con el select con su respectivo Where agrupado por usuario y luego continuar con "for execute statement SCRIPT1 into...." y a continuación hacer el Select al cursor con ese usuario.
Es posible hacer esto?

Gracias

Casimiro Notevi 19-10-2017 23:08:11

Difícil responderte teniendo en cuenta que ni siquiera has dicho qué base de datos usas.

En cuanto a tu problema, ¿has comprobado por qué es lento?
Es que estás intentando cambiarle las ruedas al coche porque es lento, y a lo mejor es que no tiene gasolina.

jars 20-10-2017 16:02:18

Gracias Casimiro.
Uso FireBird2.5 y se hace lento porque por cada usuario del For hace un Select a otra tabla, por eso supongo que si previamente tengo esa tabla lista, luego hacer un select.. where usuario... va a ser mucho mas rápido ya que no tiene clausula where.

Casimiro Notevi 20-10-2017 18:32:38

Realmente es imposible contestarte si no tenemos el SP, la base de datos que usas y datos de pruebas.

ronalg 26-10-2017 23:58:49

Si es posible hacer lo que dices
 
Cita:

Empezado por jars (Mensaje 521845)
Hola amigos.
En una SP uso "for execute statement SCRIPT1 into...." en la que hago sum de campos agrupados por usuario, a continuación hago un select a otra tabla haciendo un count y un sum con una condición para el usuario actual. Todo funciona bien pero demora muchisimo pese a que los campos involucrados tiene su indice.
Lo que quisiera poder probar es, de ser posible, en la SP crear previamente un cursor con el select con su respectivo Where agrupado por usuario y luego continuar con "for execute statement SCRIPT1 into...." y a continuación hacer el Select al cursor con ese usuario.
Es posible hacer esto?

Gracias

Si colocaras parte del codigo podriamos ayudarte de mejor manera pues me aprece raro que "demore muchisimo" no creo que sea por culpa del motor, pues firebird es muy rapido incluso en procesos anidados


La franja horaria es GMT +2. Ahora son las 10:38:42.

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