Questão de Banco de Dados — Administração de banco de dados — FUNDATEC 2025
Banco de Dados›Administração de banco de dados
Código
qg468571
Banca
FUNDATEC
Órgão
BRDE
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas - Subárea Administração de Banco de Dados
Um DBA é chamado para analisar uma query de relatório que está executando lentamente. A query filtra registros usando a cláusula WHERE em uma coluna status que possui apenas 5 valores distintos ('A', 'I', 'P', 'C', 'X') em uma tabela com 10 milhões de linhas. A distribuição dos valores é muito desigual: 9.9 milhões têm status 'A' e os outros 100 mil estão distribuídos entre os demais status. Qual tipo de índice seria mais eficiente para acelerar consultas que buscam por um dos valores menos frequentes, como WHERE status = 'P'?
AÚnico.
BBitmap.
CFuncional.
DTextual.
EClusterizado.
Revelar gabarito e comentário▾
GabaritoB — Bitmap.
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”.
Índices e Otimização de Consultas
Gabarito: letra B. O índice Bitmap é o mais eficiente para colunas com baixa cardinalidade (poucos valores distintos) e distribuição desigual, como a coluna status do enunciado. Ele cria um bitmap para cada valor possível, permitindo buscas muito rápidas por valores raros (ex.: 'P'), sem varrer toda a tabela. Índices únicos, funcionais, textuais ou clusterizados não se adequam a esse cenário.
A questão testa o conhecimento sobre tipos de índices e sua aplicabilidade. A chave está em perceber que a coluna status tem apenas 5 valores distintos e que a consulta busca um valor minoritário. O índice Bitmap foi projetado exatamente para esse tipo de situação (baixa cardinalidade, consultas seletivas), sendo amplamente usado em data warehouse.
Critério
Índice Bitmap (Gabarito)
Índice Único
Índice Funcional
Índice Textual
Índice Clusterizado
Cardinalidade da coluna
Baixa (poucos valores distintos)
Alta (valores únicos)
Qualquer (depende da expressão)
Alta (texto livre)
Qualquer
Distribuição dos dados
Adequado para distribuição desigual
Exige valores únicos
Indiferente
Indiferente
Indiferente
Eficiência para valor raro (ex.: 'P')
Máxima (bitmap esparso)
Inaplicável (violaria unicidade)
Não otimiza sem função na query
Inadequado (código curto)
Baixa (pouca seletividade)
Aplicação típica
Data warehouse, colunas categóricas
Chaves primárias, CPF
Consultas com funções (UPPER, SUBSTR)
Busca por palavras em documentos
Ordenação física da tabela
Cenário do enunciado
✅ Ideal (5 valores, 99% 'A')
❌ Impossível (9,9M repetições)
❌ Não há função na query
❌ Código de 1 caractere
❌ 5 valores não ordenam bem
Alternativa A — ❌ Incorreta
Índice Único (Unique) garante que não haja valores duplicados na coluna, o que não é o caso — há 9,9 milhões de registros com 'A'. Seria impossível criar um índice único sobre status justamente pela repetição dos valores.
Alternativa B — ✅ Correta ⟵ GABARITO
Índice Bitmap armazena um vetor de bits para cada valor distinto. Para o valor 'P', que aparece poucas vezes, o bitmap é esparso e a operação de recuperação é extremamente rápida (basta localizar os bits 1 no bitmap correspondente). É a escolha ideal para colunas com baixa cardinalidade e consultas por valores específicos.
Alternativa C — ❌ Incorreta
Índice Funcional (Function-based) é usado quando a condição da query envolve uma expressão ou função sobre a coluna (ex.: WHERE UPPER(status) = 'P'). Não há nenhuma função envolvida no filtro original (WHERE status = 'P'), portanto não se aplica.
Alternativa D — ❌ Incorreta
Índice Textual (Text) é projetado para busca em texto completo (full-text search), como palavras em documentos ou descrições. A coluna status contém códigos de um único caractere, não texto livre, sendo inadequado.
Alternativa E — ❌ Incorreta
Índice Clusterizado (Clustered) reorganiza fisicamente a tabela na ordem da coluna indexada. Como há apenas 5 valores distintos, a ordenação não trará benefício significativo para buscas seletivas; pior, para o valor majoritário 'A', ainda seria necessário varrer milhões de linhas. Além disso, uma tabela pode ter apenas um índice clusterizado, e ele não é otimizado para consultas de valores raros.
NÃO CAIA NESSA!
O candidato pode confundir o índice Bitmap com o Único ou o Clusterizado, pois ambos são comuns. A banca explora a intuição de que um índice clusterizado “organiza” os dados, mas isso não acelera a busca por um valor específico se a coluna tem pouca cardinalidade. Lembre-se: Bitmap é rei da baixa cardinalidade; clusterizado brilha em alta cardinalidade e consultas por intervalo.