Mi SP Tiene Rendimiento? Por: Jesus | | 15/4/2010
|
esta es la estructura de mis SP en SQL:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
/*----------------------------------------------------------------
PROPOSITO : Permite Listar Ordenes de Compra Trenes Peru Rail
AUTOR : Jesus Echevarria
FECHA : 15/MAR/10
INPUTS :
OUTPUTS : Lista de Ordenes de Compra Trenes Peru Rail
------------------------------------------------------------------
EXEC P_OrdenCompraTrenListar Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,'A'
SELECT * FROM OrdenCompraTren
----------------------------------------------------------------*/
ALTER Procedure [dbo].[P_OrdenCompraTrenListar]
@IDOrdenCompraTren int=null,
@IDOrdenCompra Int=Null,
@IDServicioTren int=null,
@IDFile Int=null,
@FechaEmisionIni Datetime = NULL,
@FechaEmisionFin Datetime = NULL,
@CodigoReservaTren varchar(100)=Null,
@NroOpeDep varChar(100)=Null,
@EstadoTipSer Char(1)=Null,
@IDTipoMoneda int=null,
@EstadoDetTren char(1)=Null
As
Select IDOrdenCompraTren,
OCT.IDOrdenCompra,
OCT.IDServicioTren,
ST.DescripcionSerTren,
OCT.IDFile,
Isnull(FC.NomenclaturaFile,'')as NomenclaturaFile,
GrupoPaxTren,
Isnull(PaxIda,0)as PaxIda,
Isnull(NinoIda,0)as NinoIda,
Isnull(GuiaIda,0)as GuiaIda,
Isnull(MasajistaIda,0)as MasajistaIda,
Isnull(OtrosIda,0)as OtrosIda,
Isnull(PaxVuelta,0)as PaxVuelta,
Isnull(NinoVuelta,0)as NinoVuelta,
Isnull(GuiaVuelta,0)as GuiaVuelta,
Isnull(MasajistaVuelta,0)as MasajistaVuelta,
Isnull(OtrosVuelta,0)as OtrosVuelta,
Isnull(PrePaxIda,0)as PrePaxIda,
Isnull(PreNinIda,0)as PreNinIda,
Isnull(PreGuiIda,0)as PreGuiIda,
Isnull(PreMasIda,0)as PreMasIda,
Isnull(PreOtroIda,0)as PreOtroIda,
Isnull(PrePaxVue,0)as PrePaxVue,
Isnull(PreNinVue,0)as PreNinVue,
Isnull(PreGuiVue,0)as PreGuiVue,
Isnull(PreMasVue,0)as PreMasVue,
Isnull(PreOtroVue,0)as PreOtroVue,
TotalTren,
ISNULL(CodigoReservaTren,'')as CodigoReservaTren,
ISNULL(NroOpeDep,'')as NroOpeDep,
SaldoTotal,
Case ISNULL(EstadoTipSer,'')
When 'G' then 'Generado'
When 'A' then 'Aprobado'
End as EstadoTipSer,
isNull(DBO.FU_Tren_ID(IDTrenIda),'')as TrenIda,
isNull(DBO.FU_Tren_ID(IDTrenvuelta),'')as TrenVuelta,
OC.IDTipoMoneda,
IsNull(TM.TipoMonedaDescripcion,'')as TipoMonedaDescripcion,
Isnull(Convert(char(10),OC.FechaEmision,103),'')as FechaEmision,
Isnull(Convert(char(10),OC.FechaEntrega,103),'')as FechaEntrega,
isNull(OC.ObsOrdenCompra,'')as ObsOrdenCompra,
U.IDUsuario,
Isnull(U.UsuarioNombres+' '+UsuarioApellidoPaterno,'')as [Usuario],
Case Isnull(OC.EstadoOrdenCompra,'')
When 'A' then 'Activo'
When 'I' then 'Inactivo'
End as EstadoOrdenCompra
From OrdenCompraTren OCT Inner Join OrdenCompra OC on(OCT.IDOrdenCompra=OC.IDOrdenCompra)
Inner Join ServicioTren ST on(OCT.IDServicioTren=ST.IDServicioTren)
Inner Join FileCabecera FC on(OCT.IDFile=FC.IDFile)
Left Outer Join TipoMoneda TM on(OC.IDTipoMoneda=TM.IDTipoMoneda)
Left Outer Join Usuario U on(OC.IDUsuario=U.IDUsuario)
Where
(OCT.IDOrdenCompraTren=@IDOrdenCompraTren or @IDOrdenCompraTren IS NULL)
And (OCT.IDOrdenCompra=@IDOrdenCompra or @IDOrdenCompra IS NULL)
And (OCT.IDServicioTren=4)
And (OCT.IDFile=@IDFile or @IDFile IS NULL)
And (CONVERT(Smalldatetime,CONVERT(Varchar,OC.FechaEmision,103),103)>=CONVERT(Smalldatetime,CONVERT(Varchar,@FechaEmisionIni,103),103) or CONVERT(Smalldatetime,CONVERT(Varchar,@FechaEmisionIni,103),103) IS NULL)
And (CONVERT(Smalldatetime,CONVERT(Varchar,OC.FechaEmision,103),103)<=CONVERT(Smalldatetime,CONVERT(Varchar,@FechaEmisionFin,103),103) or CONVERT(Smalldatetime,CONVERT(Varchar,@FechaEmisionFin,103),103) IS NULL)
And (OCT.CodigoReservaTren=@CodigoReservaTren or @CodigoReservaTren IS NULL)
And (OCT.NroOpeDep=@NroOpeDep or @NroOpeDep IS NULL)
And (OC.IdTipoMoneda=@IDTipoMoneda or @IDTipoMoneda IS NULL)
And (OCT.EstadoTipSer=@EstadoTipSer or @EstadoTipSer is null)
And (OCT.EstadoDetTren=@EstadoDetTren or @EstadoDetTren is null)