[firebase-br] Problema sério com View

Luciano R. Machado luciano em rsys.com.br
Ter Nov 30 12:10:32 -03 2004


Olá,

Tenho uma situação onde uma view é usada em um left join da seguinte
maneira:

Select
   Cast(ViewPed.ValorCustoFor as Decimal(11,2)) as ValorCustoFor,
   ...
...
 From Pedidos
...
Left Join ViewPedidos ViewPed
   on ViewPed.Empresa = 4
  and ViewPed.CodPedido = 100
...
...
Where Pedidos.Empresa = 4
   and Pedidos.CodPedido = 100

Esse select deve retornar soment uma linha mas a View está gerando
leitura em todos os registros de duas tabelas, uma com 121.000 e
outra com 434.000 registros.

Segue o código da view (retirei as partes irrelevantes)

CREATE VIEW VIEWPEDIDOS(
     EMPRESA,
     CODPEDIDO,
     VALORCUSTOFOR,
     VALORCUSTOULT,
     VALORCUSTOMED,
     VALORCUSTOSER)
AS
BEGIN
select Ped.Empresa, Ped.CodPedido,
...
from Pedidos Ped
left join MovEstoque Mov on Mov.Empresa = Ped.Empresa
                         and Mov.CodPedido = Ped.CodPedido
                         and Mov.NumLancamento <> 0
                         and Ped.CodPedido <> 0
group by Ped.Empresa, Ped.CodPedido

Os valores passados no Left Join não deveria ser usados como
filtro no Where da View?

O que vocês aconselham??

Obrigado.

-- 
Luciano Rodrigues Machado
Programador - Ribeirão Preto-SP





Mais detalhes sobre a lista de discussão lista