O analista de suporte José precisa otimizar o banco de dados DMJus do ambiente de Data Warehouse do MPU. O DMJus implementa modelos de dados multidimensionais cujas dimensões possuem muitos atributos de baixa cardinalidade, ou seja, apresentam um número baixo de valores distintos – por exemplo, Unidades da Federação (UF). Para otimizar o DMJus, melhorando seu desempenho, José deve criar um índice do tipo:
- A)hash;
Errada, porque indice hash e mais indicado para consultas por igualdade e nao e a escolha tipica para dimensoes de baixa cardinalidade em Data Warehouse.
- B)bitmap;
Certa, porque indice bitmap e excelente para colunas com poucos valores distintos, especialmente em ambientes multidimensionais e analiticos.
- C)caching;
Errada, porque caching nao e um tipo classico de indice em banco de dados, e sim um mecanismo de armazenamento em memoria.
- D)clustered;
Errada, porque clustered index se relaciona a organizacao fisica dos dados, nao a estrategia ideal para baixa cardinalidade em DW.
- E)non-clustered.
Errada, porque non-clustered index e uma classificacao estrutural, mas nao e a melhor resposta para o caso descrito de dimensoes com poucos valores distintos.
Gabarito: B
Quando voce trabalha com Data Warehouse e modelos multidimensionais, a regra do jogo muda um pouco: o foco costuma ser consulta analitica, com muitas filtragens por dimensoes. Se essas dimensoes tem baixa cardinalidade, isto e, poucos valores distintos, certos tipos de indice ficam muito mais eficientes para acelerar pesquisas e agregacoes. Nesse cenario, o indice bitmap costuma brilhar. Ele representa os valores de uma coluna por meio de mapas de bits, o que funciona muito bem quando ha poucos valores diferentes e muitas consultas combinando varios criterios. Em DW, isso e bem classico: sexo, status, UF, faixa etaria, situacao, categoria e por ai vai. O gabarito B esta correto porque indices bitmap foram pensados justamente para colunas com baixa cardinalidade em ambientes analiticos. Eles ajudam bastante em consultas com filtros seletivos e combinacoes de predicados, reduzindo custo de leitura em tabelas grandes. Em geral, a literatura de banco de dados e a pratica de mercado tratam bitmap como o tipo ideal para esse perfil, embora em OLTP ele seja menos recomendado por causa de atualizacoes concorrentes. As outras alternativas nao casam com esse padrao. Hash e mais associado a busca por igualdade em certos cenarios, clustered e non-clustered tratam da organizacao fisica/logica da estrutura, e caching nem e um tipo classico de indice. Aqui a pista principal era mesmo a baixa cardinalidade das dimensoes.