Uma consulta solicita dados específicos de uma base de dados. Em SQL, uma consulta utiliza SELECT para especificar colunas, FROM para especificar tabelas e WHERE para filtrar linhas. O JOIN combina tabelas. GROUP BY agrega dados. ORDER BY ordena os resultados. A base de dados analisa a consulta, planeia uma estratégia de execução e devolve os resultados. A mesma pergunta pode ser feita de várias formas, e algumas são muito mais rápidas do que outras.
O desempenho de uma consulta depende de vários fatores. Os índices aceleram as pesquisas em colunas filtradas. O planeador de consultas escolhe entre diferentes estratégias de execução com base em estatísticas sobre os dados. Estatísticas desatualizadas levam a maus planos. Escrever uma consulta que utilize índices de forma eficaz é uma competência. Uma função aplicada a uma coluna indexada numa cláusula WHERE impede que o índice seja utilizado. Uma consulta que seleciona todas as colunas quando apenas são necessárias algumas desperdiça largura de banda e memória. Uma subconsulta que é executada uma vez por linha é lenta. A mesma lógica de um JOIN é rápida. A otimização de consultas é em parte arte, em parte ciência. A base de dados fornece ferramentas: planos EXPLAIN, profilers de consulta e contadores de desempenho. Interpretar estas ferramentas requer prática. Uma consulta que é executada em milissegundos num conjunto de dados pequeno pode demorar minutos num grande. A diferença está normalmente no plano de execução, não no hardware.
Componentes de consulta
- SELECIONAR — colunas a devolver
- DE — tabelas a consultar
- ONDE — filtros de linha
- JUNTAR — combinar tabelas
- AGRUPAR POR — agregar linhas
- ORDENAR POR — classificar resultados
Uma consulta é uma pergunta. A base de dados responde a ela. A qualidade da resposta depende da forma como a pergunta é feita.
Comments
No comments yet. Be the first to share a thought.
Leave a comment