[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