Questão nº 40

Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 40)

FGV2024Técnico de Nível Superior - Analista de Banco de DadosTecnologia da Informação
Gabarito: Dver comentário ↓

João está analisando o plano de execução de uma consulta SQL complexa e percebe que o seu desempenho é insatisfatório. Após uma análise detalhada, ele identifica que a consulta está usando, na cláusula “WHERE”, uma função em uma coluna da tabela, o que está afetando negativamente a sua execução.
Com a intenção de melhorar o desempenho da consulta, João deverá:

Resposta comentada

Gabarito Alternativa D

Quando você coloca uma função (como UPPER(), SUBSTR(), TO_CHAR()) em uma coluna na cláusula WHERE de uma consulta SQL, o banco de dados geralmente não consegue usar um índice comum que exista nessa coluna, porque ele precisa calcular a função para cada linha antes de comparar, tornando o índice inútil.

  • (A) Incorreta: Índices bitmap são mais eficazes para colunas com poucos valores distintos (baixa cardinalidade) e não resolvem o problema fundamental de uma função impedir o uso de um índice existente na coluna.
  • (B) Incorreta: Um índice convencional criado diretamente na coluna X não será utilizado se a consulta usar FUNCAO(X) na cláusula WHERE, pois o otimizador não consegue aplicar o índice ao resultado da função. Esta é a armadilha: o índice existe, mas a função o "esconde" do otimizador.
  • (C) Incorreta: Aumentar a SGA (área de memória do banco de dados) pode melhorar o desempenho geral ao permitir mais cache de dados e planos, mas não aborda o problema específico de uma função no WHERE que impede o uso de um índice.
  • (D) Correta: Um índice baseado em função (Function-Based Index) é criado sobre o resultado da função aplicada à coluna (ex: CREATE INDEX idx_nome_upper ON tabela (UPPER(coluna_nome))). Assim, quando a consulta usa a mesma função no WHERE (ex: WHERE UPPER(coluna_nome) = 'VALOR'), o otimizador pode usar este índice pré-calculado, otimizando a busca.
  • (E) Incorreta: O Oracle Performance Analyzer é uma ferramenta para identificar problemas de desempenho, como João já fez ao analisar o plano de execução. Ele não é uma solução para o problema técnico identificado, mas sim um meio de encontrá-lo.

Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho