[firebase-br] UNION vs OR

Kelver Merlotti kmerlotti em gmail.com
Qui Jan 21 17:30:58 -03 2010


Fala galera, boa tarde! Gostaria da opinião de vocês, fundamentada com
seus "porquês" :-)

Pensando em uma tabela com muitos registros e com os campos NOME e
APELIDO, cada um com seu índice:

select * from tabela where
nome like 'KEL%' OR apelido like 'KEL%'

isso percorrerá a tabela inteira (full scan), retornando apenas uma
pequena quantidade de registros.

agora:

select * from tabela where nome like 'KEL%'
UNION
select * from tabela where apelido like 'KEL%'

Isso executará dois selects, porém, cada um percorrendo muito menos
registros, por estarem indexados.

Eis que surge a pergunta: qual a melhor opção?

Pelos testes que fiz, nem sempre o retorno ficou mais rápido usando o UNION.

Grande abraço!

Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Twitter: http://twitter.com/kmerlotti
Tem um segundo? Então, dá uma olhadinha nisso:
Um site de publicidades, de Portugal, está pagando em euros (quase 3x
mais que em reais) pra quem estiver disposto a:
 * Ler anúncios
 * Visitar sites
 * Clicar em banners
 * Navegar na NET
 * Ler e-mails
 * Convidar novos usuários
O pagamento pode ser feito de várias formas!
Registra lá. Não custa nada!!! ;-)
http://www.publipt.com/pages/index.php?refid=kmerlotti




Mais detalhes sobre a lista de discussão lista