BLOG RODRIGO ALMEIDA

Mastersaf

Dicas para melhorar performance no NF-e da Mastersaf

by Rodrigo Almeida on jul.10, 2009, under NF-e

Olá,

Recentemente muitas empresas estão utilizando a solução de Nota Fiscal Eletrônica (NFE) da Mastersaf, um aplicativo desenvolvido em Java Server pages (JSP) sobre o webserver GlassFish da Sun/Oracle.

Na teoria um aplicativo web de pequeno porte para validação e envio de Notas Fiscais ao Sefaz, contudo, se o aplicativo tiver problemas de performance ou parar por erro humano ou hardware, trará grandes problemas ao negócios da empresa.

Nos manuais de instalação do aplicativo, não há muitas informações de como configurar ou administrar um banco de dados Oracle de acordo com as necessidades do aplicativo. Por essa razão, vou passar algumas dicas de como melhorar a performance do aplicativo quando está se trabalhando com Oracle.

1° Dica) Use o parâmetro DB_KEEP_CACHE_SIZE

Esse parâmetro é utilizado para mantér todos os blocos de dados de uma determinada tabela em memória, desde modo, evita-se realizar Physical Reads, leitura direta em disco, e começa a trabalhar mais com Logical reads, leitura em memória. O ganho de performance é bem considerado.

Para o NFE, o ideal é colocar todas as tabelas que inicia com NFE_, ARC_, CTRL_ e NFS_ em keep, pois são tabelas utilizadas com muita frequência pelo aplicativo. Abaixo segue um modo de como configurar.

1 - Habilitando o db_keep_cache_size

alter system set db_keep_cache_size = 120M scope=both;

Sistema alterado.

2 -  Colocando a tabela em keep

alter table NFE.<nome_da_tabela> storage (buffer_pool keep);

Tabela alterada.

Recomendação

O DBA deverá realizar os cálculos corretos para divisão do SGA (Database Buffers) para o parâmetro db_keep_cache_size, ou seja, recomendo utilizar em tabelas pequenas, que tenha no máximo 20MB, é interessante alocar seu contéudo completo em memória, porém, existe outro parâmetro db_recycle_cache_size que pode ser utilizado para tabelas maiores ou deixar no buffer_pool padrão, ou seja, alocar os blocos de dados no espaço destinado do db_cache_size.

2° Dica) Bulk Collect na Integração de dados

Para empresas que possuem soluções próprias de ERP ou sistemas de gerenciamento independentes, que trabalham na plataforma Oracle (Forms/Reports/Apex/PLSQL), é recomendado utilizar cursos em Bulk Collect para criar a integração com o sistema NFE da Mastersaf.

O Bulk Collect é o tipo de cursor que traz um excelente ganho de performance em relação aos outros (Implicítos/Explicítos) e aumenta a velocidade na troca de informações entre as bases.

Para maiores informações sobre como utilizar o Bulk Collect, meu amigo Leonardo Litz escreveu um artigo realizando a comparação entre os diferentes tipos de cursores, que pode ser visto no link abaixo.

Utilizando cursores no Oracle

3° Dica ) Bloco de dados em 8k

Já cheguei a ver algumas empresas que estão trabalhando com 16k para os blocos de dados do banco, em questões de performance, isso pode lhe trazer alguns Latchs desnecessários. Em testes realizados, trabalhar com o banco de dados com os parâmetros db_block_size = 8k e o db_file_multiblock_read_count = 16 mostrou muito mais performático em relação a criar o banco de dados em 16k ou até mesmo criar as tablespaces utilizando a blocagem de 16k. Mantenha-se no 8k.

Recomendação

Quando se deseja utilizar um específico bloco de dados no projeto de banco de dados, o DBA deverá analisar desde o stripe utilizado na criação da RAID, o tipo de formatação utilizado no disco e posteriormente o bloco de dados que irá utilizar, pois todos esses fatores influência em performance.

E é isso pessoal, conforme a experiência com os produtos Mastersaf e as soluções adotadas, vou postando mais informações para melhorar o dia-a-dia e compartilhar o conhecimento com todos. Sugestões e novas soluções também são muito bem-vindas.

Abraços,

  • Share/Bookmark
1 Comment :, , , , , , , , , , , , more...

Publicidade


Friend Connect