[firebase-br] RES: Duvida Select

Matheus Georg Mathias(Priori) desenvolvedor5 em priorize.com.br
Ter Set 9 11:51:51 -03 2014


Cara, testa ai a performance utilizando o Exists que acredito que tenha os
mesmos resultados que você precisa e com uma melhor performance...

select N.NUMPEDIDO AS NUMPEDIDO from numpedidos N where N.USADO = '' and
exists(SELECT * FROM PEDIDOS WHERE NUMPEDIDO=N.NUMPEDIDO)



-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Rodrigo
Enviada em: terça-feira, 9 de setembro de 2014 11:42
Para: FireBase
Assunto: [firebase-br] Duvida Select

Bom dia a todos.

Fiz um select e ele esta funcionando, porém esta muito lento, pois ha muitos
registros no banco de dados.

select N.NUMPEDIDO AS NUMPEDIDO from numpedidos N where N.USADO = '' and
(SELECT COUNT(*) FROM PEDIDOS WHERE NUMPEDIDO=N.NUMPEDIDO) = 0

nesse select retorno o proximo numero de pedido, porem esse numero nao pode
repetir na tabela pedidos, entao faço uma pesquisa para verificar se ele ja
nao esta sendo usado. Percebi que nesses selects não usam os indices
criados. Por isso talvez fique lento.

Tentei fazer assim:

select N.NUMPEDIDO AS NUMPEDIDO from numpedidos N where N.USADO = '' and
N.NUMPEDIDO NOT IN (SELECT NUMPEDIDO FROM PEDIDOS)

Funciona mais rapido porem nao retorna os mesmos resultados do que o outro
select acima.

Existe alguma forma de melhorar esse select, ou uma forma de ele usar os
indices criados ?

Grato


______________________________________________
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