Nos últimos dias estive envolvido em um projeto de tuning de um ambiente DW que roda em um Exadata.
Foi um desafio gigante, pois não tinhamos acesso ao ambiente e nem aos dados do cliente.
Apenas recebemos 237 SQLs e precisávamos ajustar a performance dos mesmos.
A ideia inicial foi gerar as tabelas em nosso laboratório para poder testar os SQLs.
Para gerar os dados, utilizei uma rotina que foi criada pelo Eduardo Claro e pelo Rodrigo Righetti **Preciso convencer eles a criarem um post sobre a mesma :)
Essa rotina gera dados fictícios baseados nas estatísticas das tabelas, emulando uma distribuição bem parecida dos dados das tabelas reais.
O cliente aceitou enviar as estatísticas das tabelas do ambiente de testes e com isso consegui montar o ambiente e iniciar os testes.
Algumas coisas que observei e gostaria de compartilhar:
1 - A compressão utilizando HCC é realmente impressionante, de 1.7TB para apenas 44GB.
Obviamente que tudo isso pode variar de ambiente para ambiente, pois depende da distribuição dos dados na tabela.
2 - O tempo das queries diminuiu drasticamente utilizando o HCC, em média 10x mais rápido.
3 - O Exadata utiliza Storage Indexes em tabelas com HCC. Eu não havia encontrado nenhuma informação na documentação oficial sobre isso, apenas encontrei uma mensão no livro "Expert Oracle Exadata":
Tempo da Query utilizando Compression Basic:
37 segundos
Tempo da Query utilizando Compression HCC:
3,6 segundos
E como podemos observar, Storage Indexes foram utilizados na tabela com HCC:
Apesar dos Storage Indexes funcionarem, sua eficiência tem um peso menor, afinal os ganhos com compressao são os que realmente deram um grande aumento de performance.






Nenhum comentário:
Postar um comentário