[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