[firebase-br] RES: melhor cenário para resolver problemas com transação
Jose Aparecido da Silva - Fasystem
listas em fasystem.com.br
Seg Ago 30 23:30:25 -03 2010
Vou falar da minha experiencia:
Uso D7 e FB2.13 e IBX.
Pelo menos por enquanto não tenho necessidade de trocar.
Aqui vão algumas dicas que tenho utilizado e tem dado bons resultados.
Sempre utilizo querys com cachedupdates = true e faço uso do TIBUpdateSql
para as atualizações.
Utilizo uma transação com isolamento readcomitted para leitura e outra pra
gravação e atualização dos dados.
Para mostrar os dados para o cliente utilizo uma query de consulta ligado a
transação de leitura e quando necessito inserir ou modificar uma linha
utilizo outra query com a transação de gravação.
Nunca utilizo commitrettaining. Ele é pratico mas com certeza é o motivo de
tantos deadlocks. Portanto fuja dele. Só utilize se não houver outro jeito.
IBX é rápido e muito prático. É só saber trabalhar com ele.
Não utilize TTable e traga sempre a menor quantidade possível de dados.
Capriche nos índices para pesquisa e abuse dos relacionamentos para
distribuir melhor os seus dados.
Utilize sempre transação para controlar as atualizações. Faça isso inclusive
para relatórios. Não economize no controle transacional.
É isso.
Estou aí para ajudar em alguma coisa
[ ]'s
Jose Aparecido da Silva
Fasystem
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Fernando Filho
Enviada em: segunda-feira, 30 de agosto de 2010 18:46
Para: FireBase
Assunto: [firebase-br] melhor cenário para resolver problemas com transação
Olá pessoal, peço se possível para me ajudar nesse problema (entrando um
pouco em delphi , espero que não seja muito OFF ^^ )
é o seguinte, tenho um sistema usando componentes da paleta interbase
(famoso ibx)
infelizmente hoje vejo que não foi uma boa, pensei numa coisa pequena (anos
atras), a empresa cresceu pacas, e hoje essa arquitetura está me dando dor
de cabeça, alguns modulos do sistema precisam de um controle real de
transação por questões de segurança e quando tento colocar alguma coisa ,
começam os lock conlifcts, ai tenho q deixar do jeito q tá, mas ai vira e
mexe aparece um caixa com 2 lançamentos iguais (algum erro no meio do
processo e o usuario tenta incluir novamente, como não deu rollback ele
inclui denovo..), fora o acumulo de transações ativas, acontece algumas
vezes por semana de o servidor simplesmente estourar a memoria, e eu ter que
restartar o firebird.
resumo basico: uso o transaction como read commited e commit rettaining em
todo os metodos insert, delete, update do sistema. ok já sei que não é ideal
e estou procurando a melhor maneira pra resolver, por isso peço ajuda aos
amigos do grupo, levando em conta que o sistema é bem grande então para
ajeitar isso imagino que vai ser F*&¨%
enfim, meus cadastro simples são com table (outra porcaria). já pensei até
em trocar a conexão para Dbexpress, mas seria uma manutenção MONSTRO
perderia uns bons meses nisso, se eu tiver como resolver no ibx melhor, mas
se tiver que mudar vo mudar, pois não aguento mais esses problemas.
desculpem o email grande, e agradeço a ajuda desde já :)
--
Atenciosamente
Fernando Filho
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista