[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