Linguagem SQL: Capítulo 2 – Arquivos e Logs do Banco de Dados SQL Server.

Todo o banco de dados SQL Server possui pelo menos dois arquivos de sistema operacional: um arquivo de dados e um arquivo de log. Os arquivos de dados contêm dados e objetos, como tabelas, índices, procedimentos armazenados e exibições. Os arquivos de log contêm as informações necessárias para recuperar todas as transações no banco de dados.

1) Arquivos do banco de dados

Os tipos de arquivos de bancos de dados SQL Server são:

Primário: O arquivo de dados primário contém as informações de inicialização do banco de dados e aponta para os outros arquivos no BD. Dados do usuário e objetos podem ser armazenados neste arquivo ou em arquivos de dados secundários. Todo banco de dados possui um arquivo de dados primário. A extensão de nome de arquivo indicada para arquivos de dados primários é .mdf.

Log de Transações: Os arquivos de log de transações armazenam as informações de log utilizadas para recuperar o banco de dados e manter sua integridade. Deve haver, no mínimo, um arquivo de log para cada banco de dados. A extensão de nome de arquivo indicada para arquivos de transação é .ldf.

Por exemplo, pode-se criar um simples banco de dados que contenha um arquivo primário com todos os dados e objetos, e um arquivo de log que possua as informações do log de transação.

Por padrão, os dados e logs de transação são inseridos na mesma unidade e caminho. Isto é feito para controlar os sistemas de um único disco. Porém, isto não é o ideal para ambientes de produção. Como o Microsoft SQL Server utiliza chamadas de E/S (entrada/saída) do sistema operacional Microsoft Windows para executar operações de leitura e gravação no seu disco (que gerencia quando e como a E/S de disco é executada), recomenda-se que os dados e arquivos de log sejam inseridos em discos separados.


Figura 1: Arquivos na mesma unidade e caminho.


Figura 2: Arquivos em discos diferentes.

2) Modificando o SQL Server para uma melhor performance com o E3

Muitos usuários e desenvolvedores do E3 não têm conhecimento de que o banco de dados SQL Server gera um arquivo com o log de todas as operações que realiza. Por padrão, é reservado 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. Na maioria dos casos, efetuando as mudanças abaixo citadas, podemos obter uma melhora significativa na performance.

Para contornar o comportamento anteriormente comentado e aumentar o espaço reservado para os logs de transações, siga estes passos:

  • 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.
  • Com o botão direito do mouse, selecione o menu contextual Properties.

 


Figura 3: Menu contextual Properties. 

  • Na janela Database Properties, selecione a página Options e então altere a propriedade Recovery model para Simple.


Figura 4: Propriedade Recovery model.

 

  • 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. O valor sugerido é o de 2 Gb.


Figura 5: Coluna Autogrowth.

3) Modificando a aplicação E3

*Feito isto, pode-se fechar o gerenciador de banco de dados e abrir então o E3. No banco de dados da aplicação, configure a propriedade UseTransaction como False.

 


Figura 6: Propriedade UseTransaction do BD.

 

Salve a alteração, e então rode a aplicação.

*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.

 

Artigos Relacionados


Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 2

Leave a Reply

Your email address will not be published.Required fields are marked *