[firebase-br] RES: Problemas Lentidão em base Firebird/Contato Carlos Cantu

Fabiano Moura mctbrasil em gmail.com
Qua Ago 24 22:51:41 -03 2011


*Boa noite!*

  Eurides, acho sempre complicado comparar desempenho de banco de dados,
para isso, as estruturas do banco de dados, incluindo stored procedures e
triggers, teria que ser muito parecidas. Já tive problemas com disparos de
triggers, e tive que rever elas, da seguinte forma:

   1. Coloquei uma ordem de execução a elas, para garantir que realmente
   elas façam como eu queria que fizesse;
   2. Triggers muito grandes e complexas, se fosse possível, eu dividia em
   pequenos triggers;
   3. Revi alguns wheres de deletes, selects, levando em consideração o
   melhor plano de execução;
   4. Tive alguns triggers que eram executados muitas vezes como o seu caso,
   revi isso, a trigger para que não pudesse ser executado tantas vezes! Em
   alguns casos, tive que desativar a trigger e achar outra solução a nível de
   banco de dados, que funcionou para o meu caso.

  Você sabe o momento que fica lento, então sugiro, que faça as etapas
acima, se continuar, desative todos os triggers e vai habilitando um por um,
para verificar qual deles está deixando tão lento assim! Tipo, habilitou e
já no primeiro ficou lento, desative esse primeiro e ative outro, até saber
certinho qual é!

  No meu caso, quando eu tinha feito um trigger que disparava tantas vezes,
acabei em alguns casos, solucionando desativando de forma definitiva o
trigger e criando outra forma pelo banco de dados, de obter o mesmo
resultado, por exemplo, a tabela de saldo, criar uma view ou stored
procedure selecionável da tabela de movimento, as vezes pode ser a melhor
coisa (não sei para o seu caso).

  Talvez se postar a estrutura das tabelas, índices, chaves, stored
procedures e triggers criados (fonte), seja possível nós conseguirmos ajudar
mais rápido você ou se puder montar um banco de dados de exemplo com dados
fictícios para podermos fazer os devidos testes, pode ajudar. Se quiser,
pode me enviar um banco de dados no e-mail fabiano em fabianomoura.com.br. Não
prometo que conseguirei ver na hora, mas na medida do possível, podemos ver
o que dá para fazer!



*Obrigado,*
*
*
*Fabiano*



Mais detalhes sobre a lista de discussão lista