Cursor

05/05/2006 - 22:00 por Richard | Informe spam
Muchachos.

tengo un procedimiento almacenado que su ejecución demora 2 minutos,
el problema es que se ejecuta vía web, el tiempo de respuesta de la
consulta da origen a un error de tiempo espera en la aplicación.

como puedo mejorar la ejecución del cursor.

Preguntas similare

Leer las respuestas

#1 Isaias
05/05/2006 - 23:11 | Informe spam
¿Cursor?, postea tu query, revisa tus indices, limpia tu log de transacciones.
Saludos
IIslas


"Richard" escribió:

Muchachos.

tengo un procedimiento almacenado que su ejecución demora 2 minutos,
el problema es que se ejecuta vía web, el tiempo de respuesta de la
consulta da origen a un error de tiempo espera en la aplicación.

como puedo mejorar la ejecución del cursor.


Respuesta Responder a este mensaje
#2 Miguel Egea
08/05/2006 - 12:33 | Informe spam
Bueno, yo creo que soy uno de los miembros fundadores de la brigada
anti-cursores (dicho esto con todo el respeto :-) ), así que si posteas que
es lo que quieres hacer, eliminaremos ese cursor (si es posible, claro).


Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar para
obtener soluciones y educación avanzada para la plataforma completa de
sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com

"Richard" escribió en el mensaje
news:
Muchachos.

tengo un procedimiento almacenado que su ejecución demora 2 minutos,
el problema es que se ejecuta vía web, el tiempo de respuesta de la
consulta da origen a un error de tiempo espera en la aplicación.

como puedo mejorar la ejecución del cursor.
Respuesta Responder a este mensaje
#3 Richard
08/05/2006 - 17:02 | Informe spam
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Cursor_Rendicion
INTO @codigo_Ren2, @codigo_od2,
@fecha_carga2,@hora_carga2,@kilometraje2,@horometro2,@litros_tracto2,@litros_thermos2,@nros_guia2

if not (@@FETCH_STATUS = -1)
begin
if @codigo_Ren = @codigo_Ren2
begin

SET @litrosTraTo @litros_tracto2
SET @litrosTerTo = @litros_thermos2
SET @kilometrosRe = @kilometraje2 - @kilometraje
SET @hora_reco=@horometro2

if @CODIGO_TRAMO is not null
begin
EXECUTE dbo.INSERTARDETALLERUTA
,@FECHA_CARGA,@CODIGO_TRAMO,@kilometraje,@kilometraje2,@kilometrosRe,@DEVIACION,@horometro,@horometro2,@hora_reco
end
else
begin
if not exists (select * from OrigenDestinoSinTramo where
codigo_origen = @codigo_od and codigo_destino = @codigo_od2 and
codigo_rendicion = @codigo_Ren)
begin
insert OrigenDestinoSinTramo (codigo_origen,codigo_destino,
codigo_rendicion)
values (@codigo_od,@codigo_od2, @codigo_Ren) modificado
rflores (@codigo_od2,@codigo_od )
end
end

end
SET @codigo_Ren = @codigo_Ren2
SET @codigo_od= @codigo_od2
SET @fecha_carga = @fecha_carga2
SET @hora_carga = @hora_carga2
SET @kilometraje = @kilometraje2
SET @horometro=@horometro2
SET @litros_tracto =@litros_tracto2
SET @litros_thermos = @litros_thermos2
SET @nros_guia = @nros_guia2
Respuesta Responder a este mensaje
#4 Miguel Egea
08/05/2006 - 18:36 | Informe spam
necesitaria ver que hace el procedimiento InsertarDetalleRuta
"Richard" escribió en el mensaje
news:
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Cursor_Rendicion
INTO @codigo_Ren2, @codigo_od2,
@fecha_carga2,@hora_carga2,@kilometraje2,@horometro2,@litros_tracto2,@litros_thermos2,@nros_guia2

if not (@@FETCH_STATUS = -1)
begin
if @codigo_Ren = @codigo_Ren2
begin

SET @litrosTraTo > @litros_tracto2
SET @litrosTerTo = @litros_thermos2
SET @kilometrosRe = @kilometraje2 - @kilometraje
SET @hora_reco=@horometro2

if @CODIGO_TRAMO is not null
begin
EXECUTE dbo.INSERTARDETALLERUTA
,@FECHA_CARGA,@CODIGO_TRAMO,@kilometraje,@kilometraje2,@kilometrosRe,@DEVIACION,@horometro,@horometro2,@hora_reco
end
else
begin
if not exists (select * from OrigenDestinoSinTramo where
codigo_origen = @codigo_od and codigo_destino = @codigo_od2 and
codigo_rendicion = @codigo_Ren)
begin
insert OrigenDestinoSinTramo (codigo_origen,codigo_destino,
codigo_rendicion)
values (@codigo_od,@codigo_od2, @codigo_Ren) modificado
rflores (@codigo_od2,@codigo_od )
end
end

end
SET @codigo_Ren = @codigo_Ren2
SET @codigo_od= @codigo_od2
SET @fecha_carga = @fecha_carga2
SET @hora_carga = @hora_carga2
SET @kilometraje = @kilometraje2
SET @horometro=@horometro2
SET @litros_tracto =@litros_tracto2
SET @litros_thermos = @litros_thermos2
SET @nros_guia = @nros_guia2

Respuesta Responder a este mensaje
#5 Richard
08/05/2006 - 18:51 | Informe spam
solo inserta datos a la tabla, lo he cambiado y ahora eso se realiza en
el mismo procedimiento almacenado, con eso baje 15 segundos la
ejecución, pero lamentablemente no es lo suficiente para que una
aplicación .net la pueda ejecutar, además de poder modificar o
eliminar el cursor, sabes de algún tipo de configuración que me
permita agilizar este procedure, como optimizar memoria, ejecutarlo en
la tempbd de ram, etc.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida