Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2010, 12:12
marianolop22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Error de Time Out en recordset chico

Buenas gente, es la primera vez que escribo algo (y que me registro), pero hace rato que miro esta página.
Tengo el siguiente problema, tengo un sp en sql server, es el siguiente
USE [Toledo]
GO
/****** Objeto: StoredProcedure [dbo].[PedidosPendientesItems] Fecha de la secuencia de comandos: 09/20/2010 09:30:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROC [dbo].[PedidosPendientesItems]
@IdProducto int,
@IdLinea int
AS
select
pe.numero,
pe.fecha,
pr.codigo,
left (pr.descripcion,10) as descripcion,
Linea=ln.descripcion,
Pedido=pi.cantidadpedida,
Facturado=pi.cantidadfacturada,
Anulado=pi.cantidadanulada,
Pendiente=pi.cantidadpedida-pi.cantidadfacturada-pi.cantidadanulada,
CodCli=cl.codigo,
left (cl.razonsocial,10) as razonsocial,
RutaEntrega=re.descripcion,
Stock=isnull(scd.cant,0)
FROM PedidosEnc pe INNER JOIN
PedidosItems pi ON pe.iDPedidoEnc = pi.IdPedidoEnc INNER JOIN
Productos pr ON pr.IdProducto = pi.IdProducto INNER JOIN
Lineas ln ON pr.iDLinea = ln.iDLinea INNER JOIN
Clientes cl ON cl.IdCliente = pe.iDCliente INNER JOIN
RutasEntrega re ON cl.IdRutaEntrega = re.idRutaEntrega LEFT OUTER JOIN
StockCantDisponible scd ON scd.idproducto = pr.IdProducto
where (pe.estado='A' OR pe.estado='P') /*ANTES NO ESTABA LA P*/
and pi.cantidadpedida-pi.cantidadfacturada-pi.cantidadanulada > 0
and (@idproducto = 0 or @idproducto = pr.idproducto)
and (@idlinea = 0 or @idlinea = ln.idlinea)
order by pe.fecha desc

como ven, es bastante simple. Hace un select, que trae unos 1600 registros.
En la base, se hace rapido, no tarda ni un segundo, el tema es que cuando llamo al SP desde vb6, se genera un Time out. Hasta el momento, lo pude resolver achicando a propósito las columnas descripcion y razon social, si hago eso, me anda todo bien.
Ah, cuando hay pocos pedidos pendientes, 1000, la consulta anda perfecto.
Hay alguna manera de dividir el SP en 2? o cambiando algo para que pueda hacer esto??
muchas gracias y saludos.