Depois que testei o PostGreSQL 8.4, (ultima versão), acho uma exelente,
ferramenta para melhora de segunraça e velocidade.


2009/8/14 Nicolas <nico...@qualitysystem.com.br>

>
>
> Pessoal,
>
> a function SQL (MS-SQL) abaixo é chamada de dentro de um sistema em Delphi,
> é um volume grande de informações mas o cliente quer que o sistema fique
> mais rápido,
> alguém tem alguma sugestão que possa otimiza-la e deixá-la mais rápida ?
>
> CREATE function CEstoque (@Produto Int, @Empresa Int)
>
> returns Money
>
> as
>
> begin
> Declare @Entradas Money
> Declare @Saidas Money
> Declare @Ajustes Money
> Declare @Inicio Money
> Declare @Data DateTime
>
> Select @Saidas=(Select Sum( (Case IsNull(N.Entrada,'N') When 'S' Then
> I.Qtde Else 0 End) - (Case IsNull(N.Entrada,'N') When 'N' Then I.Qtde Else 0
> End) )
> From NfItens I
> Left Join Nf D On D.Nrodoc=I.Nrodoc and D.Serie=I.Serie and
> D.Empresa=I.Empresa
> Left Join Produtos PP On PP.Codigo=I.Calitem
> Left Join NatOper N On N.Chave=D.NatOper
> Where (i.calit...@produto or IsNull(Pp.ProdutoBaixa,0)=...@produto)
> and d.empre...@empresa
> and D.DataRef>=(Select Max(Data)
> From EstoqueInicio
> Where produ...@produto)),
> @Entradas=(Select Sum(I.Qtde)
> From EntradaIte I
> Left Join Entrada D On D.Nrodoc=I.Nrodoc and D.Fornece=I.Fornece
> Where d.fili...@empresa
> and i.mater...@produto
> and D.Entrada>=(Select Max(Data)
> From EstoqueInicio
> Where produ...@produto)),
> @Ajustes=(Select Sum( (Case I.ES When 'E' Then I.Qtde Else 0 End) - (Case
> I.Es When 'S' Then I.Qtde Else 0 End) )
> From AjusteEst I
> Where i.codi...@produto
> and i.fili...@empresa
> and I.Data>=(Select Max(Data) From EstoqueInicio Where produ...@produto)),
> @Inicio=(Select D.Qtde
> From EstoqueInicio D
> Where d.produ...@produto
> and d.empre...@empresa
> and D.Data=(Select Max(Data) From EstoqueInicio Where produ...@produto))
> From Produtos P
> Where codi...@produto
>
> Return
> IsNull(@Inicio,0)+IsNull(@Entradas,0)+IsNull(@Saidas,0)+IsNull(@Ajustes,0);
>
> END
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Leonardo Quinino


[As partes desta mensagem que não continham texto foram removidas]

Responder a