Ir para conteúdo

Arquivado

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

willian da rosa

Sql com melhor desempenho

Recommended Posts

Boa tarde a todos,

Fiz duas SQL trazendo o mesmo resultado. Quero saber qual é a melhor e a que é adequada as boas práticas.

 

SubQuery

SELECT 
                      id_mensagem, 
                      id_usuario_mensagem, 
                      ativo_mensagem,
                      assunto_mensagem, 
                      data_criacao_mensagem,
                      (SELECT login_usuario FROM usuario WHERE id_usuario = id_usuario_corpo_mensagem) as autor_resposta,
                      login_usuario,
                      conteudo_corpo_mensagem
               FROM mensagem 
               inner JOIN corpo_mensagem ON (id_mensagem = id_mensagem_corpo_mensagem)
               inner JOIN usuario ON (id_usuario_mensagem = id_usuario)
               where id_mensagem = 40
               ORDER BY data_corpo_mensagem DESC

 

Com Join

SELECT 
                      id_mensagem, 
                      id_usuario_mensagem, 
                      ativo_mensagem,
                      assunto_mensagem, 
                      autor_mensagem.login_usuario,
                      autor_resposta.login_usuario,
                      conteudo_corpo_mensagem
               FROM  corpo_mensagem
               inner JOIN mensagem ON (id_mensagem = id_mensagem_corpo_mensagem)
               inner JOIN usuario as autor_mensagem ON(id_usuario_corpo_mensagem = id_usuario)
               inner JOIN usuario as autor_resposta ON (id_usuario_mensagem  = autor_resposta.id_usuario)
               where id_mensagem = 40
               ORDER BY data_corpo_mensagem DESC

 

Estou aberto a sujestões

Compartilhar este post


Link para o post
Compartilhar em outros sites

joins geralmente são mais rapidos. estudo sobre o seu banco de dados, por exemplo no sqlserver a ordem das tabelas incluencia o desempenho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

joins geralmente são mais rapidos...

No meu caso é o PostgreSQL 9.1

Vendo alguns artigos na net, percebi que a SubQuery na maneira em q coloquei (SubQuery na clausula Select) consome muito recurso, pois a cada linha de resultado o Banco executara a SubQuery.

Muito obrigado shini.

E emendando o assunto no PostgreSQl a ordem das tabelas influência desempenho?

Motta desculpe-me mas entendi sua pergunta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E emendando o assunto no PostgreSQl a ordem das tabelas influência desempenho?

 

não ouvi falarem nada, tem q fazer um teste para ter certeza.

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.