Questão de Banco de Dados — Otimização (Tuning) em Banco de Dados — Avança SP 2023
Banco de Dados›Otimização (Tuning) em Banco de Dados
Código
qa542790
Banca
Avança SP
Órgão
Pref Ubatuba
Ano
2023
Cargo
Tec ( )
Quando se utiliza o MS SQL Server Management Studio (SSMS) para otimizar consultas, qual é a principal função do Query Optimizer?
AConverter consultas SQL em código C#.
BRedefinir as permissões de usuário no banco de dados.
CAnalisar e selecionar o plano de execução mais eficiente para uma consulta.
DRealizar backups automáticos do banco de dados.
EVerificar e reparar automaticamente índices não clusterizados corrompidos.
Revelar gabarito e comentário▾
GabaritoC — Analisar e selecionar o plano de execução mais eficiente para uma consulta.
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”.
Query Optimizer no SQL Server
Gabarito: letra C. O Query Optimizer é o componente do SGBD responsável por analisar a consulta SQL e selecionar o plano de execução mais eficiente, considerando estatísticas, índices e custos estimados. Essa é a definição clássica de otimização de consulta, presente em qualquer material de banco de dados.
O processo de otimização de consultas é uma das etapas centrais do processamento de uma consulta em um SGBD relacional. Quando você submete uma consulta SQL, o banco de dados realiza, em sequência: (1) a varredura e análise léxica, (2) a validação semântica, (3) a otimização e (4) a execução. O otimizador é o módulo que decide como a consulta será executada — se usará um índice, se fará uma varredura completa da tabela, em que ordem as junções serão feitas, etc. Ele avalia diversas estratégias alternativas e escolhe aquela que, segundo suas estimativas de custo, tende a ser a mais rápida e eficiente.
É importante entender que o termo "otimização" é, na prática, um pouco impreciso: o otimizador nem sempre encontra o plano ótimo absoluto, mas sim um plano razoavelmente eficiente, pois calcular a estratégia perfeita para consultas complexas seria computacionalmente inviável. Ele se baseia em estatísticas sobre os dados (como distribuição de valores, número de linhas, seletividade de índices) e em regras heurísticas para estimar o custo de cada plano possível.
No contexto do SQL Server, o Query Optimizer é um componente interno do mecanismo de banco de dados. O SSMS (SQL Server Management Studio) é apenas a ferramenta gráfica que permite ao usuário visualizar o plano de execução escolhido (por exemplo, através da opção "Exibir Plano de Execução Estimado") e, assim, analisar o desempenho da consulta. Mas quem efetivamente cria e seleciona o plano é o otimizador, não o SSMS.
A pegadinha desta questão está em confundir a ferramenta (SSMS) com o componente interno (Query Optimizer). O SSMS é a interface; o otimizador é o motor que decide a estratégia de execução. As alternativas incorretas atribuem ao otimizador funções que pertencem a outros componentes ou ferramentas do SQL Server, como conversão de linguagem, gerenciamento de permissões, backup e manutenção de índices.
Guarde a fronteira: otimizador = escolha do plano de execução. É exatamente esse critério que separa a alternativa correta das demais.
1Análise léxica
2Validação semântica
3Otimização (plano de execução)
4Execução
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Converter consultas SQL em código C# não é função do Query Optimizer. O SQL Server não converte SQL em C#; ele processa a consulta internamente, gerando um plano de execução que é executado pelo mecanismo do banco. A conversão para C# seria algo relacionado a ferramentas de desenvolvimento, como o Visual Studio, e não ao otimizador.
Alternativa B — ❌ Incorreta
Redefinir permissões de usuário é uma tarefa de administração de segurança do banco de dados, realizada por comandos como GRANT, REVOKE e DENY, ou por meio de ferramentas de gerenciamento. O Query Optimizer não tem nenhuma relação com controle de acesso; sua função é exclusivamente sobre desempenho de consultas.
Alternativa C — ✅ Correta ⟵ GABARITO
Esta é a definição exata do Query Optimizer: ele analisa a consulta SQL e seleciona o plano de execução mais eficiente. O otimizador considera fatores como índices disponíveis, estatísticas de dados, custo de operações de I/O e CPU, e escolhe entre as estratégias possíveis aquela que minimiza o tempo de resposta. É o coração do tuning de consultas.
Alternativa D — ❌ Incorreta
Realizar backups automáticos é uma função de administração do banco de dados, geralmente configurada por meio de planos de manutenção ou agentes de backup (como o SQL Server Agent). O Query Optimizer não participa do processo de backup; ele atua apenas na fase de processamento de consultas.
Alternativa E — ❌ Incorreta
Verificar e reparar índices corrompidos é uma tarefa de manutenção de índices, que pode ser feita com comandos como ALTER INDEX ... REBUILD ou DBCC CHECKDB. O Query Optimizer não repara índices; ele apenas utiliza os índices existentes para otimizar a execução das consultas. A corrupção de índices é um problema de integridade física, não de otimização.