Pular para o conteúdo principal

Questão de Banco de Dados — Otimização (Tuning) em Banco de Dados — Avança SP 2023

Banco de DadosOtimizaçã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?
  1. AConverter consultas SQL em código C#.
  2. BRedefinir as permissões de usuário no banco de dados.
  3. CAnalisar e selecionar o plano de execução mais eficiente para uma consulta.
  4. DRealizar backups automáticos do banco de dados.
  5. 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.

  1. 1Análise léxica
  2. 2Validação semântica
  3. 3Otimização (plano de execução)
  4. 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.

Gabarito: letra C

Link permanente: /questoes/qa542790