O setor de tecnologia da informação utiliza o Microsoft SQL Server para gerenciar as informações processuais. Um analista foi designado para otimizar o desempenho do sistema, que tem apresentado lentidão em consultas complexas. Ao investigar a causa, ele identifica que a fragmentação de índices e a falta de estatísticas atualizadas estão impactando significativamente o tempo de resposta das operações. Diante desse cenário, a ação mais adequada para solucionar o problema e garantir a saúde do banco de dados é
Aadicionar mais arquivos de log (.ldf) ao banco de dados para acelerar as operações de escrita, o que resolve a lentidão das consultas e o problema de fragmentação de índices.
Brealizar uma operação de DBCC CHECKDB para reconstruir todos os índices do banco de dados, pois essa é a única forma de corrigir a fragmentação e atualizar as estatísticas automaticamente.
Cdesativar a criação de índices no banco de dados, uma vez que eles consomem espaço em disco e prejudicam o desempenho das operações de INSERT e UPDATE, que são mais frequentes.
Dutilizar o comando DBCC SHRINKDATABASE para reduzir o tamanho do arquivo do banco de dados, liberando espaço e, consequentemente, melhorando o desempenho das consultas.
Eexecutar regularmente os comandos ALTER INDEX REORGANIZE para desfragmentar índices de forma on-line e UPDATE STATISTICS para garantir que o otimizador de consultas use as informações mais recentes para criar planos de execução eficientes.
Revelar gabarito e comentário▾
GabaritoE — executar regularmente os comandos ALTER INDEX REORGANIZE para desfragmentar índices de forma on-line e UPDATE STATISTICS para garantir que o otimizador de consultas use as informações mais recentes para criar planos de execução eficientes.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Otimização de desempenho no SQL Server: fragmentação de índices e estatísticas
Gabarito: letra E. A ação mais adequada para resolver a lentidão causada por fragmentação de índices e estatísticas desatualizadas é executar regularmente ALTER INDEX REORGANIZE para desfragmentar índices de forma on-line e UPDATE STATISTICS para garantir que o otimizador de consultas use informações recentes na criação de planos de execução eficientes. As demais alternativas confundem o problema com outras operações de administração de banco de dados, como gerenciamento de arquivos de log, verificação de integridade, redução de tamanho ou desativação de índices.
A fragmentação de índices ocorre quando as páginas de dados de um índice ficam desordenadas fisicamente, devido a operações de INSERT, UPDATE e DELETE. Isso faz com que o SQL Server precise ler mais páginas do que o necessário para atender a uma consulta, aumentando o I/O e degradando o desempenho. Para resolver esse problema, o SQL Server oferece duas operações principais: ALTER INDEX REORGANIZE e ALTER INDEX REBUILD. A primeira é uma operação on-line, que desfragmenta o índice de forma leve, reorganizando as páginas, e é indicada para fragmentação baixa a moderada. A segunda é uma operação mais pesada, que reconstrói o índice do zero, e é indicada para fragmentação alta. A alternativa E menciona corretamente o REORGANIZE como uma forma de desfragmentar índices de forma on-line.
As estatísticas são informações sobre a distribuição dos dados em uma tabela ou índice, que o otimizador de consultas utiliza para estimar o custo de diferentes planos de execução. Se as estatísticas estiverem desatualizadas, o otimizador pode escolher um plano ineficiente, como um table scan em vez de um index seek. O comando UPDATE STATISTICS atualiza essas informações, garantindo que o otimizador tenha dados precisos para tomar decisões. A alternativa E também menciona corretamente o UPDATE STATISTICS para esse fim.
A alternativa A sugere adicionar mais arquivos de log (.ldf) para acelerar operações de escrita, o que não resolve a lentidão das consultas nem a fragmentação de índices. Os arquivos de log são usados para garantir a durabilidade das transações, não para melhorar o desempenho de leitura. A alternativa B sugere usar DBCC CHECKDB para reconstruir índices, mas esse comando é usado para verificar a integridade lógica e física do banco de dados, não para reconstruir índices. A alternativa C sugere desativar a criação de índices, o que é uma medida extrema e prejudicial, pois os índices são essenciais para o desempenho de consultas. A alternativa D sugere usar DBCC SHRINKDATABASE para reduzir o tamanho do banco de dados, o que não melhora o desempenho das consultas e pode até piorá-lo, pois causa fragmentação adicional.
A pegadinha desta questão está em confundir operações de administração de banco de dados com operações de otimização de desempenho. O candidato pode ser tentado a escolher uma alternativa que pareça técnica, mas que não resolve o problema específico descrito no enunciado. A chave é identificar que o problema é a fragmentação de índices e a falta de estatísticas atualizadas, e que a solução deve abordar esses dois pontos diretamente.
Otimização de desempenho (SQL Server)
1Problema: fragmentação de índices
Causa: INSERT/UPDATE/DELETE
Efeito: mais I/O, consultas lentas
Solução: ALTER INDEX REORGANIZE (on-line, leve)
2Problema: estatísticas desatualizadas
Efeito: planos ineficientes (table scan)
Solução: UPDATE STATISTICS
3Comandos que NÃO resolvem
Adicionar .ldf (log)
DBCC CHECKDB (integridade)
Desativar índices
DBCC SHRINKDATABASE (reduzir tamanho)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Adicionar mais arquivos de log (.ldf) ao banco de dados não acelera as operações de escrita nem resolve a lentidão das consultas ou a fragmentação de índices. Os arquivos de log são usados para registrar as transações e garantir a durabilidade, não para melhorar o desempenho de leitura. A fragmentação de índices é um problema de organização física das páginas de dados, que não é afetado pela quantidade de arquivos de log.
Alternativa B — ❌ Incorreta
O comando DBCC CHECKDB é usado para verificar a integridade lógica e física do banco de dados, detectando corrupção e erros de alocação. Ele não reconstroi índices nem atualiza estatísticas automaticamente. Para reconstruir índices, o comando correto é ALTER INDEX REBUILD ou DBCC DBREINDEX (obsoleto). Para atualizar estatísticas, o comando correto é UPDATE STATISTICS.
Alternativa C — ❌ Incorreta
Desativar a criação de índices no banco de dados é uma medida extrema e prejudicial. Os índices são essenciais para o desempenho de consultas, pois permitem acesso rápido aos dados. Embora consumam espaço em disco e possam impactar operações de INSERT e UPDATE, os benefícios para consultas superam os custos. A solução para o problema descrito não é desativar índices, mas sim gerenciar sua fragmentação e atualizar estatísticas.
Alternativa D — ❌ Incorreta
O comando DBCC SHRINKDATABASE é usado para reduzir o tamanho dos arquivos do banco de dados, liberando espaço em disco. Ele não melhora o desempenho das consultas e pode até piorá-lo, pois causa fragmentação adicional nos índices e nas tabelas. A redução do tamanho do banco de dados não tem relação com a fragmentação de índices nem com a atualização de estatísticas.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E descreve corretamente as duas ações necessárias para resolver o problema: executar ALTER INDEX REORGANIZE para desfragmentar índices de forma on-line e UPDATE STATISTICS para garantir que o otimizador de consultas use informações recentes na criação de planos de execução eficientes. O REORGANIZE é uma operação leve e on-line, adequada para fragmentação baixa a moderada, enquanto o UPDATE STATISTICS atualiza as informações de distribuição de dados, permitindo que o otimizador escolha planos de execução mais eficientes.
NÃO CAIA NESSA!
Para questões sobre otimização de desempenho em bancos de dados, identifique primeiro o problema específico descrito no enunciado. Se for fragmentação de índices, lembre-se de ALTER INDEX REORGANIZE (leve, on-line) e ALTER INDEX REBUILD (pesado, off-line). Se for estatísticas desatualizadas, use UPDATE STATISTICS. Não confunda com comandos de verificação de integridade (DBCC CHECKDB), redução de tamanho (DBCC SHRINKDATABASE) ou gerenciamento de arquivos de log.