Questão nº 63
Questão de Tecnologia da Informação · FGV CMSP 2024 (nº 63)
Os processos de otimização de consultas SQL em ambientes Oracle podem utilizar diversos tipos de índices.
O tipo de índice adequado para colunas que possuem um número relativamente baixo de valores, para aplicações de armazenamento de dados em que há baixa atividade de declarações SQL do tipo DML e filtragens ad hoc e eficiente em consultas com a função COUNT ( ) denomina-se índice
- Abaseado em função.
- Bchave reversa.
- Cparticionado.
- Dárvore B.
- Ebitmap. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Um índice bitmap é como um mapa onde cada valor único de uma coluna tem uma lista de "bits" (0 ou 1) que indicam quais linhas da tabela possuem aquele valor.
- (A) Incorreta: Um índice baseado em função otimiza consultas que usam funções em colunas, não sendo seu foco principal colunas de baixa cardinalidade ou a função COUNT().
- (B) Incorreta: Um índice de chave reversa inverte a ordem dos bytes da chave para distribuir melhor as inserções, útil para evitar contenção em chaves sequenciais, mas não para o cenário descrito.
- (C) Incorreta: Um índice particionado divide o índice em partes menores, geralmente para tabelas muito grandes, melhorando a gerência e o desempenho em certas operações, mas não é o tipo de índice específico para as características mencionadas.
- (D) Incorreta: Um índice de árvore B (B-Tree) é o tipo mais comum e eficiente para colunas com alta cardinalidade e para buscas pontuais ou por faixa. Para baixa cardinalidade, pode ser menos eficiente que um bitmap e não se destaca na função COUNT() da mesma forma. A armadilha aqui é que B-Tree é o padrão e serve para muitas coisas, mas não é o mais adequado para as condições específicas (baixa cardinalidade, baixa DML, COUNT eficiente).
- (E) Correta: O índice bitmap é ideal para colunas com poucos valores distintos (baixa cardinalidade), pois ele armazena um "mapa de bits" para cada valor, indicando as linhas correspondentes. É muito eficiente para combinar múltiplas condições (filtragens ad hoc) e para a função COUNT() porque operações lógicas em bits são rápidas. Sua eficiência é maximizada em ambientes com baixa atividade de DML (inserções, atualizações, exclusões), pois essas operações podem ser custosas para índices bitmap.
Fonte: FGV CMSP 2024 Consultor Técnico Legislativo - Informática (Caderno Tipo 1). Reproduzida para fins de estudo.