Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/02/2011, 10:16
Ronald_Leon_Madrid
 
Fecha de Ingreso: febrero-2011
Ubicación: Peru-Lima-Chorrillos
Mensajes: 19
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Mejorar Performance de Procedimiento Almacenado

Estimado Flavio:

Que tal maestro, tengo un procedimiento almacenado donde te explico la siguiente estructura:

Cita:
--Llena la tabla temporal según los paramentro de periodo y mes
Select
CodigoUnidadNegocio,
DescripcionUnidadNegocio,
CodigoMateriaPrima,
DescripcionMateriaPrima,
Unidad_Medida,
Pronostico,
Fecha_Explosion,
Stock_Total,
Stock_Transito,
Dias_Objetivo,
CodigoProveedor,
DescripcionProveedor,
PaisDelProveedor
Into
#tmpSeguimiento
From
Datamartbo.dbo.CI_SEGUIMIENTO_INSUMOS
Where
Year(Fecha_Explosion) = @Periodo And
Month(Fecha_Explosion) = @Mes

--Estructura de la Tabla Temporal

Declare @temp Table
(
PlanCompraID int,
Periodo int,
Mes int,
CodigoMateriaPrima varchar(20),
DescripcionMateriaPrima varchar(201),
UnidadMedida varchar(6),
PronosticoActual numeric(15,8),
ConsumoPromedioMensual numeric(15,8),
Duracion int,
SafetyStock numeric(15,8),
StockDisponible numeric(15,8),
StockTotal numeric(15,8),
StockTransito numeric(15,8),
DiasObjetivo int,
Decision varchar(10),
Cantidad int,
PaisProveedor char(3),
FlgEst bit
)

DECLARE Cur_Articulo CURSOR FAST_FORWARD
FOR
Select CodigoMateriaPrima,DescripcionMateriaPrima,Unidad_ Medida,Pronostico,CodigoProveedor,Stock_Total,Stoc k_Transito,Dias_Objetivo,PaisDelProveedor
From
#TmpSeguimiento

Open Cur_Articulo

Fetch Next From Cur_Articulo
Into @CodigoMateriaPrima,@DescripcionMateriaPrima,@Unid ad_Medida,@Pronostico,@CodigoProveedor,@Stock_Tota l,@Stock_Transito,@Dias_Objetivo,@PaisDelProveedor
While @@FETCH_STATUS = 0
Begin

Fetch Next From Cur_Articulo
Into @CodigoMateriaPrima,@DescripcionMateriaPrima,@Unid ad_Medida,@Pronostico,@CodigoProveedor,@Stock_Tota l,@Stock_Transito,@Dias_Objetivo,@PaisDelProveedor

End
Close Cur_Articulo
Deallocate Cur_Articulo
Todo este proceso dura como 20 minutos, porque realiza calculos.

La idea es bajarlo a la mitad.

Saludos cordiales,
Ronald León Madrid