DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo SQL Magazine 38 - Mão na Massa

Artigo da Revista SQL Magazine - Edição 38.

minha

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
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Equipe Devmedia

Noticias/Dicas/Artigos publicados.




Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03