FC ConcursosFC Concursos

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:

  1. I, II, III e IV.
  2. I, II e IV, apenas.
  3. III, apenas.
  4. II, III e IV, apenas.
  5. 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

Continue aprendendo