[firebase-br] Consulta demorando 2 horas como resolvo. (Eduardo?)

Felix felix.sol em terra.com.br
Seg Jun 6 13:58:59 -03 2011


Eduardo,

Também notei essa diferença em um teste que fiz aqui:

<1 segundo:
-----------
SELECT X.codigopro, 
       descricao, 
       registros
from ( SELECT codigopro, count(it_pedido.codigopro) registros from it_pedido
group by 1) X
inner join produto on x.codigopro=produto.codigopro
where registros > 10000

3.6 segundos:
-------------
SELECT it_pedido.codigopro, 
       descricao, 
       count(it_pedido.codigopro) registros
FROM IT_PEDIDO 
inner join produto on it_pedido.codigopro=produto.codigopro
group by 1, 2 
having count(*)>10000

Sabe informar se é por causa do volume de dados? Me parece que ao utilizar o
HAVING o Firebird irá fazer o INNER para todos os registros - só depois irá
selecionar as vendas > 10.000 unidades; na primeira query acredito que ele
faça o INNER apenas para aqueles cuja venda esteja acima desse valor...

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: segunda-feira, 6 de junho de 2011 13:01
Para: FireBase
Assunto: Re: [firebase-br] RES: RES: Consulta demorando 2 horas como
resolvo.

 
 25 segundos

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

De: Felix <felix.sol em terra.com.br>
Assunto: [firebase-br] RES: RES: Consulta demorando 2 horas como resolvo.
Para: "'FireBase'" <lista em firebase.com.br>
Data: Segunda-feira, 6 de Junho de 2011, 11:45

Eu havia entendido que viriam APENAS os registros que estariam em
duplicidade; em quanto tempo rodou a query?

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: segunda-feira, 6 de junho de 2011 11:04
Para: FireBase
Assunto: Re: [firebase-br] RES: Consulta demorando 2 horas como resolvo.

a query  abaixo retorna todas as linhas da tabela "cadastro_mercadorias" 
sem trazer as duplicidades.

> select
>     cm.codigo_barras,
>     cm.codigo,
>     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
>     cadastro_mercadorias cm
>     inner join cadastro_fornecedor cf on (cf.codigo = cm.cod_fornecedor)
>     Inner Join grade_produtos GP on
 (Gp.cod_produto = CM.codigo)
> group by 1,2,3,4,5,6
> having count(*) > 1
______________________________________________
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