Um engenheiro de computação está otimizando uma consulta le...

Próximas questões
Com base no mesmo assunto
Q3882838 Banco de Dados
Um engenheiro de computação está otimizando uma consulta lenta em um SGBD. Ele percebe que o plano de execução mostra uma varredura completa da tabela em uma tabela de milhões de tuplas.

A ação de tunning mais provável para forçar o SGBD a usar um método de busca mais eficiente é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O ponto decisivo é a presença de uma varredura completa em uma tabela com milhões de tuplas e a indicação de uma ação de tuning para tornar a busca mais eficiente.

Tema central: Índice e método de acesso
Análise das alternativas
A
Errada
Desfragmentar o disco pode afetar desempenho físico de I/O, mas não altera, por si, o método lógico de acesso escolhido para localizar linhas pelo predicado. Não cria estrutura de acesso para a coluna do WHERE nem substitui full table scan por busca indexada.
B
Errada
Desativar o Buffer Pool atua em cache/memória e tende a piorar leituras, não a induzir um método de busca mais eficiente no plano. O problema cobrado é de acesso às tuplas via predicado, não de gerenciamento de buffer.
C
Certa
A alternativa C está certa porque criar um índice na coluna usada na cláusula WHERE é a medida diretamente relacionada ao método de acesso da consulta. É a única opção que introduz uma estrutura apropriada ao predicado de seleção e, por isso, pode substituir a varredura completa por acesso indexado. A expressão "mais provável" apenas reforça que essa é a resposta classicamente associada ao cenário descrito.
D
Errada
Aumentar o isolamento para SERIALIZABLE trata de concorrência e consistência transacional. Isso não é mecanismo de otimização de método de acesso e pode até elevar custo, sem relação direta com trocar varredura completa por busca indexada.
E
Errada
Mudar a codificação de caracteres não fornece caminho de acesso mais eficiente ao predicado WHERE. É uma alteração de configuração de dados, não uma medida típica para mudar o plano de execução de full scan para acesso indexado.
Pegadinha da questão
A confusão explorada é trocar melhoria geral de desempenho por mudança de método de acesso no plano de execução. A questão queria a ação diretamente ligada ao predicado WHERE, não ajustes de disco, cache, isolamento ou codificação.
Dica para questões semelhantes
  • Se o problema apontado é full table scan em consulta filtrada, verifique primeiro se existe índice adequado para a coluna do predicado WHERE.
  • Diferencie ajuste de método de acesso de ajustes de infraestrutura: cache, disco e isolamento podem afetar desempenho, mas não são a resposta típica para viabilizar acesso indexado.
  • Quando a questão falar em ação "mais provável", escolha a medida diretamente conectada ao ponto técnico descrito no plano de execução.
  • Não conclua além da base: criar índice é a medida correta aqui, mas isso não significa que o SGBD sempre usará o índice ou que full scan seja sempre errado.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Quando o plano de execução mostra uma:

varredura completa da tabela (full table scan)

em uma tabela muito grande, normalmente o problema é que o SGBD não possui um caminho eficiente para localizar as linhas desejadas.

A otimização mais comum é criar um: índice

especialmente na coluna usada na cláusula WHERE

Com isso, o SGBD pode usar:

  • index seek;
  • index scan;
  • acesso direto às tuplas,

em vez de ler milhões de registros.

  • A) Desfragmentar disco → não resolve o problema lógico da consulta.
  • B) Desativar Buffer Pool → pioraria desempenho.
  • C) Criar índice na coluna do WHERE → correto.
  • D) SERIALIZABLE → trata concorrência, não tuning de busca.
  • E) Codificação de caracteres → irrelevante para o plano de execução.

C

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo