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

Valdemir - GMail valdemirjs em gmail.com
Sáb Dez 20 09:35:49 -03 2014


Pessoal tenho uma outra situação

 

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

Clientes

Produtos

NF

Itens

Contas Receber

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

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

 

 

 

Atenciosamente,
Valdemir



 




Mais detalhes sobre a lista de discussão lista