Recorrer registros y ejecutar un SP

31/08/2005 - 13:47 por Alfredo Crisostomo | Informe spam
Necesito recorrer los registros de una tabla para procesarlos ejecutando un
SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion de
usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.

Que se supone que debe ser mas eficiente ?

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
31/08/2005 - 14:45 | Informe spam
Alfredo,

Si la aplicacion realiza alguna operacion con el resultado del sp, entonces
no queda otra que recorrer las filas desde la aplicacion y llamar al sp por
cada una de ellas. Si en cambio, la aplicacion no hace uso de los resultados
del sp (de los resultados individuales de ejecutarse por cada fila) entonces
puedes hacerlo desde el servidor y evitas trafico en la red.

Por otra parte, habria que ver que es lo que hace el sp y ver si es posible
buscar una solucion basada en conjuntos en vez de hacer el procesamiento por
fila.


AMB

"Alfredo Crisostomo" wrote:

Necesito recorrer los registros de una tabla para procesarlos ejecutando un
SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion de
usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.

Que se supone que debe ser mas eficiente ?




Respuesta Responder a este mensaje
#2 Alfredo Crisostomo
31/08/2005 - 15:28 | Informe spam
Gracias, lo que ocurre es que el SP que procesa las filas tiene una serie de
condicionales y llamadas a otros SP's, lo cual lo hace un poco complejo para
hacerlo en instrucciones selects sencillas.

Respecto a si la aplicacion hace uso de los resultados del SP, realmente no,
solo deben almacenarse los resultados en un conjunto. El cursor aplica muy
bien pero mi inquietud, porque no tengo todavia la posibilidad de probarlo
en produccion si puede que provoque una baja considerable de rendimiento
tener el cursor para esa cantidad de registros, como siempre se expresa por
aqui.

"Alejandro Mesa" escribió en el
mensaje news:
Alfredo,

Si la aplicacion realiza alguna operacion con el resultado del sp,
entonces
no queda otra que recorrer las filas desde la aplicacion y llamar al sp
por
cada una de ellas. Si en cambio, la aplicacion no hace uso de los
resultados
del sp (de los resultados individuales de ejecutarse por cada fila)
entonces
puedes hacerlo desde el servidor y evitas trafico en la red.

Por otra parte, habria que ver que es lo que hace el sp y ver si es
posible
buscar una solucion basada en conjuntos en vez de hacer el procesamiento
por
fila.


AMB

"Alfredo Crisostomo" wrote:

Necesito recorrer los registros de una tabla para procesarlos ejecutando
un
SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion de
usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.

Que se supone que debe ser mas eficiente ?




Respuesta Responder a este mensaje
#3 Tinoco
31/08/2005 - 15:40 | Informe spam
Hola Alfredo, Mas eficiente . Realizar todo el proceso en el servidor
(Cursor).

Por otro lado te recomiendo buscar la forma de realizar la el proceso de
forma masiva sobre los datos, se puede buscar la forma de incluir los datos
en una tabla temporal y realizar las operaciones sobre ella.

Hermilson Tinoco.
Colombia


"Alfredo Crisostomo" wrote:

Necesito recorrer los registros de una tabla para procesarlos ejecutando un
SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion de
usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.

Que se supone que debe ser mas eficiente ?




Respuesta Responder a este mensaje
#4 Alejandro Mesa
31/08/2005 - 15:47 | Informe spam
Alfredo,

Bueno, eso depende de la complejidad y carga del procedimeinto almacenado.
Un cursor sobre 800 filas no ha de crear muchos problemas, pero cuidado con
el sp.


AMB

"Alfredo Crisostomo" wrote:

Gracias, lo que ocurre es que el SP que procesa las filas tiene una serie de
condicionales y llamadas a otros SP's, lo cual lo hace un poco complejo para
hacerlo en instrucciones selects sencillas.

Respecto a si la aplicacion hace uso de los resultados del SP, realmente no,
solo deben almacenarse los resultados en un conjunto. El cursor aplica muy
bien pero mi inquietud, porque no tengo todavia la posibilidad de probarlo
en produccion si puede que provoque una baja considerable de rendimiento
tener el cursor para esa cantidad de registros, como siempre se expresa por
aqui.

"Alejandro Mesa" escribió en el
mensaje news:
> Alfredo,
>
> Si la aplicacion realiza alguna operacion con el resultado del sp,
> entonces
> no queda otra que recorrer las filas desde la aplicacion y llamar al sp
> por
> cada una de ellas. Si en cambio, la aplicacion no hace uso de los
> resultados
> del sp (de los resultados individuales de ejecutarse por cada fila)
> entonces
> puedes hacerlo desde el servidor y evitas trafico en la red.
>
> Por otra parte, habria que ver que es lo que hace el sp y ver si es
> posible
> buscar una solucion basada en conjuntos en vez de hacer el procesamiento
> por
> fila.
>
>
> AMB
>
> "Alfredo Crisostomo" wrote:
>
>> Necesito recorrer los registros de una tabla para procesarlos ejecutando
>> un
>> SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion de
>> usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.
>>
>> Que se supone que debe ser mas eficiente ?
>>
>>
>>
>>



Respuesta Responder a este mensaje
#5 Maxi
31/08/2005 - 19:37 | Informe spam
Hola, ojo con la escalabilidad!! hoy tiene 800 pero mañana..


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
Alfredo,

Bueno, eso depende de la complejidad y carga del procedimeinto almacenado.
Un cursor sobre 800 filas no ha de crear muchos problemas, pero cuidado
con
el sp.


AMB

"Alfredo Crisostomo" wrote:

Gracias, lo que ocurre es que el SP que procesa las filas tiene una serie
de
condicionales y llamadas a otros SP's, lo cual lo hace un poco complejo
para
hacerlo en instrucciones selects sencillas.

Respecto a si la aplicacion hace uso de los resultados del SP, realmente
no,
solo deben almacenarse los resultados en un conjunto. El cursor aplica
muy
bien pero mi inquietud, porque no tengo todavia la posibilidad de
probarlo
en produccion si puede que provoque una baja considerable de rendimiento
tener el cursor para esa cantidad de registros, como siempre se expresa
por
aqui.

"Alejandro Mesa" escribió en el
mensaje news:
> Alfredo,
>
> Si la aplicacion realiza alguna operacion con el resultado del sp,
> entonces
> no queda otra que recorrer las filas desde la aplicacion y llamar al sp
> por
> cada una de ellas. Si en cambio, la aplicacion no hace uso de los
> resultados
> del sp (de los resultados individuales de ejecutarse por cada fila)
> entonces
> puedes hacerlo desde el servidor y evitas trafico en la red.
>
> Por otra parte, habria que ver que es lo que hace el sp y ver si es
> posible
> buscar una solucion basada en conjuntos en vez de hacer el
> procesamiento
> por
> fila.
>
>
> AMB
>
> "Alfredo Crisostomo" wrote:
>
>> Necesito recorrer los registros de una tabla para procesarlos
>> ejecutando
>> un
>> SP para cada uno. La tabla tiene como 800 registros. Tengo la opcion
>> de
>> usar un cursor o recorrerlos desde la aplicacion e ir llamando el SP.
>>
>> Que se supone que debe ser mas eficiente ?
>>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida