Cursos / Informática para Internet / Banco de dados / Aula

arrow_back Aula 13 - Linguagem SQL – Subconsultas

Subconsultas versus conexões

Visto que é possível realizar uma pesquisa, como, por exemplo, o nome dos produtos que já foram vendidos, usando uma consulta com subconsulta ou com conexão, você saberia dizer qual é a melhor estratégia?

De uma maneira geral, consultas usando conexões são mais eficientes que consultas com subconsultas, pois o Query Optimizer (mecanismo interno do SGBD que otimiza as instruções enviadas para o banco de dados) pode executar algumas operações a mais quando se utiliza uma subconsulta degradando assim a performance da execução. Ou seja, uma consulta com subconsulta pode ser mais demorada do que uma consulta com conexão. Entretanto, as consultas com subconsultas são apropriadas para pesquisas que envolvam comparações com agregações, como a consulta a seguir:

Nessa consulta, a instrução SELECT mais interna retorna o preço máximo dos produtos da tabela PRODUTOS, através da função de agregação MAX(). A seguir, esse valor é comparado com todos os produtos e somente aqueles que possuírem o prod_preco com valor máximo serão retornados pela consulta mais externa. A resposta do SGBD a essa consulta é ilustrada na Figura 6.

Tela do MySQL após o comando SELECT para listar os produtos com preço máximo.

Versão 5.3 - Todos os Direitos reservados