[firebase-br] Voltou a cair (URGENTE)

Suporte Sinapse Informática suporte em sinapseinformatica.com.br
Seg Set 25 13:06:24 -03 2006


  Olá Eduardo,

  Obrigado pelas dicas que você me deu. Só queria tirar algumas dúvidas sobre suas dicas.

  Primeiramente eu queria te informar que estou usando sim o DbExpress e com DELPHI 6. Atualmente estou usando com o famoso trio de componentes SQLQUERY + DATASETPROVIDER + CLIENTDATASET.

  1) Como faço HARD-COMMIT no fechamento da tabela. Na maioria dos caso em que uso a transação é quando tenho que você alterações (inclusões, alteração, exclusões) em mais de uma tabela no mesmo laço. 

  2) Quanto a esse caso estou fazendo direitinho, aliás é padrão daqui da empresa trabalhar dessa forma com relação as transações. Agora eu tenho triggers que disparam atualizações em outras tabelas, exemplo quando um usuário alterar o código do cliente no cadastro de clientes, existe uma trigger que executa uma procedure que faz a alteração do código nas tabela dependente, justamente para manter a integridade referencial.

  3) Estou usando Windows 2003 Server com o Firebird 1.5 Superserver no computador Xeon 2.8 Ghz com 4 GB de Memória. Alguns colegas da lista sugeriram o uso do Classic server pois segundo eles funcionaria melhor com placa de 2 processadores. Só gostaria de saber se mudará alguma coisa e minha aplicação. Como posso fazer essa mudança?

  O banco de dados está com aproximadamente com 2.5gb com 90 usuários acessando simultaneamente. 

  Eu gostaria de mandar as estatísticas do banco de dados que foi tirada hoje pela para vocês verificarem, mas eu não sei se posso enviar mensagens anexadas para lista. Até gostaria de saber com o administradores da lista se é possível, caso seja, eu irei enviá-los.

  Agradeço desde já pela sua ajuda,

  CARLOS HENRIQUE MEIRELES
  DESENVOLVIMENTO DE SISTEMAS


  OK... você tem um modelo transacional inadequado para o seu sistema.

  Antes de mais nada é saber em qual linguagem e componente de acesso você 
  está usando.

  Reparei que os piores casos de controle transacional estão relacionados à 
  DBEXPRESS (por culpa do cache dos dados as pessoas não commitam as 
  transações),

  Mas uma sugestão é sempre ter duas transações:

  1ª) de curta duração auto-commit (que deve ser commitada a cada operação no 
  banco) usada para operações simples como alterar um cliente, excluir um 
  registro, inserir um novo produto, em que não há necessidade de um rollback. 
  Se possível procure dar um hard-commit logo após fechar cada tela do 
  sistema.

  2ª) transação completa... usada para operações de emissão de nota fiscal 
  (criação da nota, detalhes da nota, baixa de estoque, geração de 
  duplicatas) que devem ser iniadas no momento em que os primeiros dados forem 
  enviados ao banco e finalizada (via commit ou rollback) assim que a operação 
  esteja completa.

  Só mais uma informação, foi você que disse que usa seu software num XEON 
  DUAL com LINUX ? em caso positivo, verifique qual versão do FB está sendo 
  executada. Uma coisa que pode melhorar é desligar o sweep (via gfix) e 
  agendá-lo via crontab para momentos de baixo pico de uso. (logo pela manhã, 
  início do horário de almoço,  horário do café da tarde, logo após ao término 
  do expediente.)

  ======================
  Eduardo Jedliczka
  Membro do TeamFB - FireBase
  Apucarana - PR
  ======================
  "Posso não concordar com nada do que dizes.
  Mas defenderei até a morte o seu direito de dizê-lo"
  (Voltaire 1694-1778)


Mais detalhes sobre a lista de discussão lista