[firebase-br] otimizador de consultas do firebird

Josauro S.J. josauro em casasoft.inf.br
Qui Nov 18 17:57:35 -03 2004


A primeira coisa é nunca faça join com essa sintaxe apesar dela funcionar é terminantemente desrecomendada é uma sintaxe do SQL-89,  use JOIN para unir duas ou mais tabelas

select *
from  cidades
LEFT JOIN pessoas
on (cidade.codigocidade = pessoas.codigocidade)
where  cidades.codigocidade = 10


Josauro S.J.
Diretor
josauro em casasoft.inf.br
----- Original Message ----- 
From: Maglan Cristiano Diemer 
To: FireBase 
Sent: Thursday, November 18, 2004 6:30 PM
Subject: [firebase-br] otimizador de consultas do firebird


Pessoal,

Suponha duas tabelas relacionadas.

create table PESSOAS {
   codigopessoa integer not null, (chave primaria)
   nome varchar(100),
   codigocidade integer (chave estrangeira)
}

create table CIDADES {
   codigocidade integer not null, (chave primaria)
   nome varchar(100)
}


Eu quero saber se o Interbase interpreta
os seguintes selects da mesma forma

1)
select *
from pessoas, cidades
where pessoas.codigocidade = cidades.codigocidade
and cidades.codigocidade = 10

2)
select *
from pessoas, cidades
where pessoas.codigocidade = 10
and cidades.codigocidade = 10


Esse é um exemplo pequeno. Mas voces entenderam, né?
Li no livro sobre otimizacoes em bancos SQL, que o
segundo select (apesar de trazer o mesmo resultado
do primeiro) é bem mais rapido do que o primeiro.

Penso que o otimizador do banco poderia cuidar disso, não ?

Ou voces ainda poderiam mostrar outra alternativa que
seja mais rapida ainda ?

O que voces tem a dizer sobre isso ?

Maglan


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br




Mais detalhes sobre a lista de discussão lista