Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2024

Banco de DadosSQL
Código
fg086704
Banca
FGV
Órgão
MF
Ano
2024
Nível
Superior
Cargo
Auditor Federal de Finanças e Controle - Área de Tecnologia da Informação (Operação e Infraestrutura) - manhã
Em bancos de dados relacionais que utilizem a linguagem SQL (não procedural) a otimização de comandos SQL é um fator central no “tuning” de um banco de dados.A otimização foca na determinação do modo mais eficiente para obter o resultado. Nesse contexto, o “estimator” é o componente que avalia o consumo de recursos num certo plano de execução.De acordo com o que é preconizado pela Oracle, os fatores pelos quais o custo é estimado são:
  1. ACardinality, Cost, Selectivity.
  2. BDisk memory, Indexes, RAM memory.
  3. CFilters, Partitions, Primary keys.
  4. DIndexes, Join operations, Size.
  5. EJoins, Projections, Selection.
Revelar gabarito e comentário

GabaritoA — Cardinality, Cost, Selectivity.

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”.

SQL Tuning: Fatores de Custo no Oracle Optimizer

Gabarito: letra A. O otimizador baseado em custo (CBO) da Oracle estima o custo de um plano de execução usando três fatores principais: cardinality (número de linhas), selectivity (fração de linhas selecionada) e cost (medida de recursos como I/O e CPU). O "estimator" é o componente que calcula esses valores para cada plano possível.

A banca testa o conhecimento sobre a teoria de tuning de SQL, especificamente os conceitos utilizados pelo Oracle Database para estimar o custo de execução.

Alternativa A — ✅ Correta ⟵ GABARITO

Cardinality, Cost, Selectivity. Esses são os três pilares do modelo de custo do Oracle CBO. A cardinalidade é o número estimado de linhas que uma operação retornará; a seletividade é a proporção de linhas que atendem a um predicado; o custo é um valor numérico que combina esses fatores e reflete o consumo de recursos. A combinação correta é exatamente a descrita na documentação oficial da Oracle.

Alternativa B — ❌ Incorreta

Disk memory, Indexes, RAM memory. Embora recursos de hardware (disco, RAM) influenciem o desempenho, o otimizador não os usa diretamente como fatores de custo. O CBO trabalha com estimativas baseadas em estatísticas (cardinalidade, seletividade) e não com componentes físicos isolados.

Alternativa C — ❌ Incorreta

Filters, Partitions, Primary keys. Filtros e partições são operações que podem aparecer em um plano de execução, mas não são os fatores pelos quais o custo é estimado. Chaves primárias são restrições de integridade, não métricas de custo.

Alternativa D — ❌ Incorreta

Indexes, Join operations, Size. Índices e operações de junção são elementos do plano, não fatores de estimativa. O tamanho (size) pode se relacionar à cardinalidade, mas sozinho não constitui um fator reconhecido pelo Oracle CBO como os três listados na alternativa A.

Alternativa E — ❌ Incorreta

Joins, Projections, Selection. Esses são operadores da álgebra relacional (junção, projeção, seleção). Embora apareçam em planos de execução, não são os parâmetros que o estimator avalia para calcular o custo. O Oracle CBO usa cardinalidade, seletividade e custo, não operações relacionais como métricas.


PEGA ESSA DICA!

Para questões sobre Oracle optimizer, memorize a tríade Cardinality, Selectivity, Cost. Eles são a base do CBO e frequentemente cobrados em provas de banco de dados.

Gabarito: letra A

Link permanente: /questoes/fg086704