Já identificamos que existem fatores relevantes na estação cliente que impactam significativamente no desempenho dos sistemas executados. Agora, entenderemos melhor como parâmetros de sessão cliente podem ser configurados para fornecer mais recursos para os programas.
Conforme vimos nos posts anteriores, a idéia da melhoria de desempenho é evitar a utilização de disco e trabalhar com mais dados ao mesmo tempo. Para configurarmos isso da melhor maneira possível, devemos entender algumas características do Progress:
1. Todo programa executado na sessão é armazenado em memória, em um espaço alocado pelo parâmetro –mmax.
2. Todas as variáveis usadas em programas são armazenada em memória, em um espaço nomeado de local record buffer.
3. O mesmo espaço também armazena todos os registros lidos e os que serão enviados para gravação no banco de dados.
4. Todas as tabelas temporárias usadas na sessão são armazenadas em memória, em um espaço chamado Temporary Table Buffer.
Para um registro ser utilizado por um programa, ele é trazido do banco e armazenado no Local Record Buffer. Quando termina o espaço de memória definido para esse objetivo, o Progress client aumenta-o automaticamente.
Se você verificar o log do banco, poderá notar uma mensagem comum indicando aumento do parâmetro –l de um valor para outro. A questão é, se o parâmetro é aumentado no lado client, porque o banco de dados reporta esse aumento?
Esse é o motivo que nos leva a trabalhar com essa área. Conforme o Progress armazena registros no local buffer para utilização dos programas, eles somente são eliminados no momento da saída do processo que o estava utilizando. Se o espaço do local buffer termina, o Progress descarta o registro trazido do banco, aloca mais espaço para o local buffer e solicita o mesmo registro novamente para o banco.
Caso você esteja monitorando os pacotes TCP que passam pelo servidor, irá identificar que o mesmo registro foi transmitido duas vezes, o que pode ser caracterizado como uma falha na query ou mesmo um bug do Progress.
Para evitar uma análise incorreta, o Progress explica no log o motivo da retransferência do registro, indicando que isso ocorreu por causa do estouro do local buffer da estação cliente. Dessa forma, chegamos a conclusão que quanto mais você prever a real necessidade dos parâmetros, mais rápido os programas terão os registros disponíveis para utilização.
Outra característica desconhecida do Progress ocorre na abertura da sessão cliente. Quando uma sessão do Progress conecta um banco de dados, o Progress client busca todas as definições do banco e as permissões que cada usuário terá em cada definição. Esse esforço é eliminado quando utilizado o parâmetro –cache.
O parâmetro –cache aponta para um arquivo binário que contém as informações necessárias para os programas. Essas informações referentes às definições atuais dos bancos expedidos pela Datasul passam de 10 Mbytes.
Em alguns casos práticos, o serviço de consultoria telefônica da Datasul chegou a ganhar mais de 10 segundos no tempo de conexão dos sistemas com a correta utilização desses parâmetros.