Questão FC546310
Sobre a otimização (tuning) de consultas em bancos de dados relacionais, avalie as afirmações apresentadas a seguir: I.Consultas com múltiplas condições de seleção conectadas pelo
Otimização (Tuning) em Banco de Dados
FURB · 2025
Sobre a otimização (tuning) de consultas em bancos de dados relacionais, avalie as afirmações apresentadas a seguir:
I.Consultas com múltiplas condições de seleção conectadas pelo operador lógico OR podem não utilizar índices eficientemente e podem ser otimizadas dividindo-as em uma união (UNION) de consultas separadas.
II.O uso desnecessário da cláusula DISTINCT pode ser evitado sem alterar o resultado em alguns casos, o que é benéfico, pois DISTINCT frequentemente causa uma operação de ordenação onerosa.
III.Consultas aninhadas correlacionadas são sempre mais eficientes do que suas versões não aninhadas ou reescritas como JOINs, pois o SGBD otimiza sua execução avaliando a subconsulta apenas uma vez.
IV.Expressões aritméticas ou comparações envolvendo valores NULL ou substrings em cláusulas WHERE podem, em alguns casos, impedir que o otimizador de consulta utilize índices relevantes.
É correto o que se afirma em:
- I, II, III e IV.
- I, II e IV, apenas.
- III, apenas.
- II, III e IV, apenas.
- I, apenas.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
As afirmações corretas apontam práticas que afetam diretamente o uso de índices pelo otimizador. Quando condições de seleção estão unidas por OR, o SGBD pode não aplicar índices eficientemente; reescrever a consulta como uma UNION de consultas com uma condição cada permite que cada ramo aproveite índices e muitas vezes reduza leituras.
O uso de DISTINCT remove duplicatas, mas frequentemente acarreta operações de ordenação ou agregação custosas. Se a semântica da consulta já garante unicidade (por exemplo por chave única) ou se duplicatas não ocorrem, remover DISTINCT melhora desempenho.
Expressões aplicadas a colunas indexadas, comparações com NULL usando operadores inadequados ou uso de funções/substrings na cláusula WHERE podem impedir varreduras de índice. Nesses casos o otimizador recorre a varreduras completas. Soluções incluem evitar envolver a coluna em funções, usar índices funcionais ou testar NULL com IS NULL.
Conteúdo do catálogo FC Concursos · Atualizado em