[firebase-br] Transações x IBO x Delphi

Carlos H. Cantu listas em warmboot.com.br
Sáb Dez 20 11:19:09 -03 2014


Que eu me lembre, antes de um componente do IBO ser destruido, ele
mesmo verifica se está preparado e dá o unprepare.

Quanto a ter 7.000 transações, tem algo errado aí no seu código ou
talvez algum bug no IBO, pois o padrão do IBO é usar a mesma transação
interna e não ficar abrindo uma nova. Eu iria mais além e nesse caso
faria o controle transacional explicitamente.

Faça um debug mais profundo do seu código para ver o que está
acontecendo. Outra coisa: o Sinatica não tem a capacidade de
"capturar" informações que aconteceram muito rapidamente. Para isso,
use FBScanner ou a própria TraceAPI do Firebird.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

VG> Pessoal tenho uma outra situação

VG>  

VG> Em uma rotina, de importação em massa, envolvida por várias tabelas

VG> Clientes

VG> Produtos

VG> NF

VG> Itens

VG> Contas Receber

VG>  

VG> Enfim, uma importação do arquivo SPED Fiscal (para quem conhece sabe que em
VG> um único TXT vem informações de várias tabelas)

VG>  

VG> Tenho uma rotina, com vários querys, e cursores, e um script para inserção
VG> no banco ou update das informações lidas.

VG>  

VG> O que o sistema faz, lê o arquivo do sped, verifica se já tem a informação
VG> no cadastro, se tiver, verifica se é necessário atualizar se não for
VG> necessário não dá update, se for necessário, ai dá o update, se não existir,
VG> ai dá o insert.

VG>  

VG> Ocorre que, existem alguns selects, que se repetem, então para agilizar eu
VG> tenho alguns cursores, onde eu apenas troco os parâmetros e dou refresh, em
VG> alguns casos tenho querys.

VG>  

VG> Estou monitorando e vi que nesta rotina o número de transações sobe a 7 mil
VG> transações abertas, coisa que dificilmente tenho 7 mil queries (isso supondo
VG> que eu tenha uma transação a cada query)

VG> Nesta janela, as consultas principais e o script tenho apenas uma transação,
VG> mas tenho alguns componentes que usam a transação default do ibo.

VG>  

VG> Monitorando pelo sinatica, tem muitas transações que não mostram o comando
VG> que originou a transação, isso porque, quando vc dá um close no query, ele
VG> fecha, mas não da o unprepare.

VG>  

VG> Minha ideia é dar o unprepare manual porque este número está muito alto.

VG>  

VG> Fora esta solução alguém tem alguma outra suspeita ?

VG> Alguém conhece uma maneira deu adicionar antes de destruir a query da
VG> memória dar o unprepare na mesma ?, mas sem alterar os fontes do ibo ? (tipo
VG> no meu fonte, eu adicionar algo assim: antes do destroy de todas as query,
VG> dar o unprepare, desta forma não precisa ir form por form e fazer isso)

VG>  

VG>  

VG>  

VG> Atenciosamente,
VG> Valdemir



VG>  

VG> ______________________________________________
VG> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
VG> Para saber como gerenciar/excluir seu cadastro na lista, use:
VG> http://www.firebase.com.br/fb/artigo.php?id=1107
VG> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista