[firebase-br] RES: Luciano Franca - consulta demorando 2 horas

Luciano franca luapfirebird em yahoo.com.br
Sex Jun 3 15:57:11 -03 2011


Showwwwww de codigo 

ficou assim 
Prepare time = 0ms
Execute time = 1s 312ms

Retornou esse Plan
Plan
PLAN SORT (MERGE (SORT (JOIN (CF NATURAL, CM INDEX (FK_CADASTRO_MERCADORIAS_3), GP INDEX (FK_GRADE_PRODUTOS_1))), SORT (SORT (DUPLICADOS CADASTRO_MERCADORIAS NATURAL))))

o Plan anterior era esse
PLAN SORT ((CC NATURAL))
PLAN SORT (SORT (JOIN (CF NATURAL, CM INDEX (FK_CADASTRO_MERCADORIAS_3), GP INDEX (FK_GRADE_PRODUTOS_1))))

Só não entendi o motivo porque ficou tão rapido essa query assim o colega pode explicar 



--- Em sex, 3/6/11, Felix <felix.sol em terra.com.br> escreveu:

De: Felix <felix.sol em terra.com.br>
Assunto: [firebase-br] RES:  Luciano Franca - consulta demorando 2 horas
Para: "'FireBase'" <lista em firebase.com.br>
Data: Sexta-feira, 3 de Junho de 2011, 15:14

Rapaz, é por causa do MAX, faltou o GROUP BY no final. Coloca assim e
informa o resultado por favor?

select duplicados.codigo_barras, cm.codigo_fabricante, cm.cod_fornecedor,
cm.mercadoria, cf.fornecedor,
 Max(Case When(Gp.filial = 1) Then Gp.preco_g_vista End) As Preco_AS,
 Max(Case When(Gp.filial = 2) Then Gp.preco_g_vista End) As Preco_MT

 from (select codigo_barras, count(codigo_barras) registros from
cadastro_mercadorias group by codigo_barras) duplicados

 inner join cadastro_mercadorias cm on (duplicados.codigo_barras =
cm.codigo_barras)
 inner join cadastro_fornecedor  cf on (cf.codigo = cm.cod_fornecedor)
 Inner Join grade_produtos       GP on (Gp.cod_produto = CM.codigo)

where registros > 1
group by 1, 2, 3, 4, 5
order by  cm.codigo_barras

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Luciano franca
Enviada em: sexta-feira, 3 de junho de 2011 15:04
Para: FireBase
Assunto: Re: [firebase-br] Luciano Franca - consulta demorando 2 horas

Colega retorna esse erro

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate
function or the GROUP BY clause).

Eu consegui deixar mais rapido colocando IN no lugar de Exists e estou
revisando todo o meu banco para ver o que posso melhorar em termos de
indices

--- Em sex, 3/6/11, Felix <felix.sol em terra.com.br> escreveu:

De: Felix <felix.sol em terra.com.br>
Assunto: [firebase-br] Luciano Franca - consulta demorando 2 horas
Para: "'FireBase'" <lista em firebase.com.br>
Data: Sexta-feira, 3 de Junho de 2011, 14:45

Luciano, tenta este select e informa o resultado na lista?

select duplicados.codigo_barras, cm.codigo_fabricante, cm.cod_fornecedor,
cm.mercadoria, cf.fornecedor,
 Max(Case When(Gp.filial = 1) Then Gp.preco_g_vista End) As Preco_AS,
 Max(Case When(Gp.filial = 2) Then Gp.preco_g_vista End) As Preco_MT

 from (select codigo_barras, count(codigo_barras) registros from
cadastro_mercadorias group by codigo_barras) duplicados

 inner join cadastro_mercadorias cm on duplicados.codigo_barras =
cm.codigo_barras
 inner join cadastro_fornecedor  cf on (cf.codigo = cm.cod_fornecedor)
 Inner Join grade_produtos       GP on (Gp.cod_produto = CM.codigo)

where registros > 1
order by  cm.codigo_barras

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



Mais detalhes sobre a lista de discussão lista