Introdução
Algumas vezes, quando uma aplicação E3 realiza muitas operações no banco de dados, mesmo com a aplicação rodando adequadamente, pode acontecer que alguns registros não sejam gravados ou que consultas de um E3Chart ou de um E3Browser demorem muito para serem executadas. Isto faz com que os dados não apareçam no banco de dados e os arquivos .e3i e .e3o cresçam continuamente. Isto é mais comum quando os Históricos, Alarmes ou Storages têm remoção de dados por período (ou geração de tabelas de backup) configurados no E3. Como pode haver muitos dados no Banco de Dados, esta configuração acaba gerando muitas transações de dados entre o E3 e o Banco de Dados.
Figura 1: Configuração de descarte de dados do E3
Modificando o SQL Server
O que alguns usuários e desenvolvedores do E3 talvez não saibam é que o banco de dados SQL Server gera um log de todas as operações que realiza. Por padrão, o SQL Server reserva um espaço de 200 Mb para este arquivo de log, e este tamanho, quando o E3 realiza muitas operações no banco de dados, pode ser pequeno.
Para contornar este comportamento e aumentar o espaço reservado para os logs de transações, devemos seguir estes passos:
1. Através do gerenciador do banco de dados, neste caso o Microsoft SQL Server Management Studio Express, acesse o banco de dados da aplicação E3 e, com o botão direito do mouse, selecione o menu contextual Properties.
Figura 2: Selecionando a opção Properties no Microsoft SQL Server Management Studio
2. Na janela Database Properties, selecione a página Options e então altere a propriedade Recovery model para Simple.
Figura 3: Página Options da janela Database Properties
Ainda na janela Database Properties, selecione a página Files e então altere a coluna Autogrowth da linha com o nome do banco de dados em questão mais o sufixo _log com um valor maior do que o padrão. Sugerimos o valor de 2 Gb:
Figura 4: Página Files da janela Database Properties
Modificando a aplicação E3
*Feito isto, podemos fechar o gerenciador de banco de dados e abrir o E3. No banco de dados da aplicação, vamos configurar a propriedade UseTransaction para False.
Figura 5: Configurando a propriedade Use Transaction do Banco de Dados da aplicação E3
*NOTA: quando a propriedade UseTransaction está habilitada (True), todas as operações que estão em seu escopo serão agrupadas. Isto causa um ganho de performance, independente do banco de dados utilizado. Seu valor padrão no entanto é False, para que seja mantida a compatibilidade com as versões anteriores do E3.
Depois disto, salve a alteração e então rode a aplicação.
Conclusão
Com estas modificações, o E3 conseguirá realizar todas as operações no banco de dados e gerar um log de transação de até 2Gb de tamanho sem comprometer a performance do aplicativo.
NOTA: Durante os testes para o desenvolvimento deste artigo, foi utilizado um banco de dados SQL não espelhado.