Este é um post disponível para assinantes MVPArtigo SQL Magazine 38 - Mão na Massa
Artigo da Revista SQL Magazine - Edição 38.

Clique aqui para ler todos os artigos desta edição
Mão na Massa
Situações do cotidiano de seu banco de dados
Este espaço é seu, leitor da SQL Magazine. Através desta seção, você pode tirar suas dúvidas referentes às suas atividades cotidianas e nossos especialistas terão prazer em ajudar.
Desta vez, Rodrigo Righetti responde a duas perguntas enviadas pelos leitores e também colaborei com a seção respondendo uma terceira pergunta.
Envie suas questões para webeditor@sqlmagazine.com.br.
Ricardo Rezende
Editor Técnico
Você perguntou!
Olá à SQL Magazine.
Considerando performance, o que é melhor: joins ou subqueries?
Poderia me explicar com um exemplo?
Aproveitando, qual a diferença entre nested loops e hash joins e como determinar qual deles usar para obter uma melhor performance? Um exemplo ajudaria bastante.
Muito obrigado e parabéns pela excelente publicação.
Regiane Almeida Cardoso
E nós respondemos!
Olá Regiane,
Em relação à primeira pergunta, é muito relativo mas, no “geral”, sempre que for possível evitar uma subquery fazendo a junção direta, a performance tende a ser muito melhor.
Em relação aos métodos de junção, existem algumas regras básicas que funcionam na maioria dos casos:
Nested Loops: É ideal se você pretende retornar poucas linhas, ou se é mais importante o retorno das linhas ao invés de processar tudo de uma vez e depois enviar o resultado. Para que ele funcione de forma ideal, a “driven table”, ou tabela controladora, deve ser bem restritiva e o acesso às tabelas internas deve ser feito por índices com boa seletividade.
Esse é o método ideal, via de regra, para telas de consulta, onde o usuário quer receber poucos dados rapidamente. Agora, se não existirem índices com boa seletividade ou não existirem índices, esse método de junção se torna muito custoso.
O Nested Loop funciona da seguinte forma, o Oracle lê a primeira linha da “driven table” e depois verifica na tabela interna a combinação. Esse processo fica em loop até verificar todas as combinações. A Figura 1 apresenta um gráfico demonstrando o seu funcionamento.
Figura 1. Esquema de funcionamento do método Nested Loop.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP



0
0
