[firebase-br] set plan???
Douglas Tosi
douglasht em gmail.com
Sáb Ago 16 12:29:38 -03 2008
2008/8/16 Arlei Ferreira Farnetani Junior <junior em farsoft.com.br>:
> Na verdade é uma store procedure de apuração de
> itens vendidos totalizando mes a mes no ano todo para
> apuração da média de necessidade de compra (estoque mínimo).
Algumas dicas genéricas:
- Dê nomes significativos para seus índices e constraints. É muito
difícil ler CFOP_VINCULO_IDX3 e imaginar o que significa.
CFOP_VINCULO_TIPO_OP seria muito mais legível porque inclui o nome do
campo indexado.
- Usar sintaxe join SQL-89 é pouco recomendado (ex. from tabelaA,
tabelaB, tabelaC). Use a sintaxe SQL-92. Além de mais legível, se não
me engano é o preferido pelo otimizador do Firebird.
Ex.:
from orcamentos o,
join orcamentos_itens oi on oi.is_orcamento = o.id_orcamento
where
o.is_filial=:vis_filial
and not o.status='C'
Sobre o primeiro sql da sua procedure:
Qual a seletividade do índice CFOP_VINCULO_IDX3? Se for maior que 0,2
ele está te ajudando muito pouco nesta procedure específica. Tente sem
ele, mas fique atento: tirá-lo pode desbalancear outros sqls onde ele
"pode" estar ajudando.
FK_ORCAMENTOS_7 é um índice em que campo? Qual a seletividade dele?
hth,
[]s
--
Douglas Tosi
www.sinatica.com
Mais detalhes sobre a lista de discussão lista