Questão FC90506
Considerando aspectos da análise de desempenho e otimização de consultas SQL, julgue o próximo item. A consulta SELECT _ FROM Empregado WHERE Nome = @P OR Login = @P; é menos efici
Linguagem SQL
CEBRASPE (CESPE) · 2024
Considerando aspectos da análise de desempenho e otimização de consultas SQL, julgue o próximo item.
A consulta
SELECT _
FROM Empregado
WHERE Nome = @P
OR Login = @P;
FROM Empregado
WHERE Nome = @P
OR Login = @P;
é menos eficiente que a seguinte consulta.
SELECT _
FROM Empregado
WHERE Nome = @P
UNION
SELECT _
FROM Empregado
WHERE Login = @P;
FROM Empregado
WHERE Nome = @P
UNION
SELECT _
FROM Empregado
WHERE Login = @P;
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Comentário: A assertiva está correta. A consulta utilizando OR pode ser menos eficiente do que a alternativa com UNION, dependendo da estrutura da tabela e do índice utilizado.
Explicação
- Consulta com OR (
WHERE Nome = @P OR Login = @P)- O uso de OR pode impedir o banco de dados de usar índices de forma eficiente.
- Em tabelas grandes, pode resultar em uma varredura completa da tabela (
FULL SCAN), o que impacta o desempenho.
- Consulta com UNION (
WHERE Nome = @P UNION WHERE Login = @P)- O UNION permite que cada consulta utilize índices específicos.
- Caso existam índices separados para Nome e Login, cada consulta pode ser otimizada individualmente, evitando varredura completa da tabela.
Conteúdo do catálogo FC Concursos · Atualizado em