[firebase-br] Select lenta! sera q preciso usar plan? nunca usei

Joao Luiz jluizsc em bol.com.br
Qua Dez 28 14:18:13 -03 2005


Pessoal,

Sei isso eu deveria resolver sozinho verificando meu BD, mas ainda nao
achei a solucao e nao sei usar o *plan*, vejam, tenho as seguintes
tabelas:

Nota

#cd_empresa
#cd_filial
#sr_nota
#nr_nota
*cd_cliente
*dt_emissao

Itens da Nota

#cd_empresa
#cd_filial
#sr_nota
#nr_nota
#nr_item
*nr_referencia
*qt_item
*vl_item

ProdLinh

#nr_referencia
#cd_linha

Cada referencia pode ter mais de uma linha e vice-versa;

Acontece q a Select:

select c.cd_linha, sum(b.vl_pedido)*sum(b.qt_pedido) "total"
from nota a, notaitem b, prodlinh c
where a.cd_empresa=b.cd_empresa
and a.cd_filial=b.cd_filial
and a.sr_nota=b.sr_nota
and a.nr_nota=b.nr_nota
and b.nr_referencia=c.nr_referencia
and a.dt_emissao between '12/01/2005' and '12/31/2005'
and a.cd_empresa=1
and a.cd_filial=2
group by 1


Analisada pelo IBPLAnalyzer indica q as tabelas nota e notaitem estao
sendo lidas usando indice, mas estao sendo feita uma leitura full (de
todos os registros) da tabela notaitem, sendo 322000 (o mesmo numero
nas duas tabelas) ! deveria ter lido apenas as linhas do periodo
especificado (+ ou - 6000).

Jah sei q eh por causa do "prodlinh", pois sem relacionar essa tabela a
velocidade melhora muito!

Soh q preciso dessa relacao. e demora... demora... demora...

Alguma coisa errada com a relacao da select acima? 

Valeu!!!

-- 

___________________________________
Joao Luiz - Linux user #159951
web : http://www.jluizsc.pop.com.br

GRATIS eh POUCO: ganhe 24,00 por 100h navegando: 
Orolix:
http://cadastro.orolix.com.br/registro/?codcupom=0066399663943892
 
CresceNET: http://www.cresce.net/home.asp?id=256309







Mais detalhes sobre a lista de discussão lista