Configurando o cache de distribuição de dados
O Cache de distribuição armazena os binários de estátisticas gerados pelo comando "UPDATE STATISTICS MEDIUM/HIGH".
Para um banco de dados grande com relação a capacidade da maquina (memória/processamento/IO), esta configuração poder ter efeito na performance, pois toda SQL executada no banco de dados é analisada por um otimizador e este processo necessita destes dados de estátisticas para escolher qual o melhor caminho utilizar e recuperar os dados solicitados.
Estas recomendações são baseadas em documentações como manuais e informativos técnicos.
- Conceito: o cache é organizado em hash (pacotes) e cada um pode ter um número X de distribuições. É recomendável ter uma pequena quantidade de distribuições por hash.
- Cada hash (pacote) será utilizado por uma distribuição que é igual a uma coluna (estatística de uma coluna).
- Definir a quantidade total de cache de distribuição.
Para fazer isso pode-se utilizar como base o cache de dicionario de dados (onconfig = DD_* , onstat -g dic) ou simplismente fazendo um SQL count(*) na sysdistrib. - Definir a quantidade de distribuições por hash, sugestão: 4 distribuição por hash
- Configurar DS_POOLSIZE e DS_HASHSIZE onde:
DS_POOLSIZE: quantidade máximo de distribuições
DS_HASHSIZE: quantidade de hashs (precisa ser um numero primo)
Exemplo
30000 distribuições: 4 distribuições por hash = 30000/4 = 7500
7500 -> 7507 (número primo)
DS_POOLSIZE = 30000
DS_HASHSIZE = 7507
Para monitorar o cache utilizar onstat -g dsc
- 197 leituras





Comentar