Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

charleseg

charles

Recommended Posts

Olá... Tenho uma dúvida e até o atual momento nao consegui encontrar nada que dir respeito. Se vcs puderem me ajudar eu ficarei eternamete grato...Tenho ese selelec abaixo e minha duvida é o seguinte: queria saber como o motor do banco faz este select. Ele começa do join? do where? ou retorna todos os valores e depois fazse o filtro?Estou com problemas de desempenho em queries pesadas. select A.nome, B.sobrenome from tabelaA A join tabelaB B on (A.codigo = B.codigo) where a.nome is not null order by 1Me judem..... Abraços Charles

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae charles, rolava de você ter colocado um nome e descrição no tópico menos narcisistas né? hehahe. brincadeira. (mas dá prox vez posta uma descrição mais decente senao ninguem te responde cara)Eu imagino que seja da seguinte forma: o motor do BD primeiro lê a tabelaA, depois lê a tabelaB, montando os dados dos dois. Depois ele pesquisa o Join pra exibir apenas onde confere, depois entao que ele faz o where.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Li uma matéria na sqlmagazine, testei e comprovei.Não fala nada em relação ao join, mas a ordem é a seguinte, primeiro são montadas as condições da clausula where nas tabelas, da última para a primeira condição e depois mostrados os campos.Exemplo:SELECT * FROM TABELA WHERE CODIGO > 1 AND TIPO = 10;Primeiro serão selecionados os registros com TIPO = 10 e depois o CODIGO > 1.Alterando estas condições você pode ter um grande ganho no desempenho de suas queries.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sakei. Faz sentido. Assim se eu colocar por último as condições mais simples (que verificam números por exemplo) e colocar primeiro as mais complexas (as que verificam string por exemplo) eu teria uma performance maior.Sempre imaginei algo parecido só que de trás pra frente, agora vou inverter todas as minhas queries. hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.