Qual a blocagem de melhor desempenho para banco de dados Progress? Essa é uma questão bastante discutida. Existem vários mitos que perpetuam a definição da blocagem do banco de dados: Deve-se definir um tamanho de bloco igual ao tamanho de bloco da memória. Deve-se definir um tamanho de bloco igual ao tamanho de bloco do sistema de arquivos. Deve-se usar o padrão da definição do Progress. É melhor utilizar bloco de 1 kbyte. É melhor utilizar bloco de 4 KBytes. É melhor utilizar bloco de 8 kBytes. O problema de testar a blocagem de um banco de dados é que não é possível alterá-la depois que o banco está criado. Um dump-load será necessário para fazer essa alteração. Outro problema grave é que geralmente parametrização correta do banco de dados não tem influencia em bancos com a blocagem mal definida. Então vamos quebrar alguns mitos: Mito número 1. Se uma aplicação solicita ao sistema operacional um determinado espaço contíguo de memória, esse espaço será alocado em um ou mais blocos de memória. Se a memória disponível no servidor não é suficiente para alocar um espaço contíguo de 8 KBytes, por exemplo, a blocagem do banco de dados será o menor dos seus problemas. Mito número 2. Da mesma forma, o sistema de arquivos alocará mais blocos quando isso for solicitado, e irá ler a quantidade de blocos necessários para trazer a informação demandada pelo Progress, independente da blocagem do banco ou do sistema operacional. Mito número 3. Sem comentários. Quanto a melhor blocagem, o discurso da Progress até a versão 10.0B era que a melhor blocagem para Windows era 4 KBytes e a melhor blocagem para Linux e Unix era 1 KBytes. A partir do Progress 10.1A o discurso mudou. Agora a melhor blocagem para Windows e Linux é 4 KBytes e para Unix é 8 KBytes. Para encerrar a discussão com alguma fundamentação científica, contruí uma série de programas que mensuram o tempo para gerar um banco de dados de aproximadamente 1 GByte e efetuar uma série de operações aleatórias e sequenciais de inclusões, alterações, leituras e exclusões. Esses testes foram efetuados em um servidor isolado com processador Intel EM64T de 2.33 GHz, com 4 GBytes de memória e 2 discos SATA em RAID 0. O teste efetuado com bloco de 8 KBytes foi mais rápido que o teste com bloco de 4 KBytes em todos os quesitos. No geral, o tempo total de execução com bloco de 4 KBytes foi 8 horas e 8 minutos. O tempo total com bloco de 8 KBytes foi 7 horas e 28 minutos, quase 9 % menos. Isso tem um motivo. Quanto maior o bloco, mais registros podem ser manipulados em uma única operação de leitura e gravação, tornando o processo mais rápido. Da mesma forma, menor a quantidade de fragmentos para registros grandes (grandes >= 1 KByte). Minha recomendação é usar bloco de 8 kBytes em qualquer situação, pelo menos até a Progress permitir bloco de 16 KBytes, quando provavelmente minha recomendação será esse tamanho de bloco. Crédito: Adriano Corrêa