[firebase-br] Lentidão no TIB_Cursor.Prepare;
Carlos H. Cantu
listas em warmboot.com.br
Qui Nov 9 17:41:07 -03 2017
Falei com o Jason e ele disse que os 13 segundos estão demorando
quando o IBO pede ao Firebird para abrir um nova transação, antes de
preparar o comando. Ele disse que pode ser a coleta de lixo.
Pediu pra vc enviar um exemplo da base de dados e do comando que está
demorando para Jason Wharton <jason em jwharton.com>
[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
CRdS> Está levando 13,812 segundos para preparar o statement.
CRdS> A preparação deste mesmo sql no firedac ou no ibexpert é instantaneo.
CRdS> Att.
CRdS> /*===
CRdS> [ 09/11/2017 14:10:09 ]
CRdS> (TApplication).DmContabil.CrSaldo_Conta.trCrSaldo_Conta.API_Start()
CRdS> ====*/
CRdS> /*---
CRdS> [ 09/11/2017 14:10:09 ]
CRdS> START TRANSACTION
CRdS> DB HANDLE COUNT 1
CRdS> DB HANDLE 1 = 1
CRdS> TPB VERSION 3
CRdS> write
CRdS> read_committed
CRdS> rec_version
CRdS> nowait
CRdS> TR_HANDLE = 61
CRdS> SECONDS = 13,812
CRdS> ----*/
CRdS> /*---
CRdS> [ 09/11/2017 14:10:23 ]
CRdS> PREPARE STATEMENT
CRdS> TR_HANDLE = 61
CRdS> STMT_HANDLE = 60
CRdS> Dialect = 3
CRdS> select x.reduzido, x.dc, sum(x.valor) valor from
CRdS> (
CRdS> select
CRdS> reduzido,
CRdS> tpsaldo dc,
CRdS> sum(saldoinicial) valor
CRdS> from co_sct
CRdS> where
CRdS> (
CRdS> (codempresa=?/* codempresa */) and
CRdS> (codfilial=?/* codfilial */) and
CRdS> (reduzido between ?/* reduzido_inicial */ and ?/* reduzido_final */)
CRdS> )
CRdS> group by 1, 2
CRdS> union all
CRdS> select
CRdS> debito reduzido,
CRdS> 'D' dc,
CRdS> sum(valor) valor
CRdS> from co_lct
CRdS> where
CRdS> (
CRdS> (co_lct.codempresa=?/* codempresa */) and
CRdS> (co_lct.codfilial=?/* codfilial */) and
CRdS> (debito between ?/* reduzido_inicial */ and ?/* reduzido_final */) and
CRdS> (data<=?/* data */)
CRdS> )
CRdS> group by 1, 2
CRdS> union all
CRdS> select
CRdS> credito reduzido,
CRdS> 'C' dc,
CRdS> sum(valor) valor
CRdS> from co_lct
CRdS> where
CRdS> (
CRdS> (co_lct.codempresa=?/* codempresa */) and
CRdS> (co_lct.codfilial=?/* codfilial */) and
CRdS> (credito between ?/* reduzido_inicial */ and ?/* reduzido_final */) and
CRdS> (data<=?/* data */)
CRdS> )
CRdS> group by 1, 2
CRdS> ) x group by 1, 2
CRdS> PLAN SORT ((X CO_SCT INDEX (FK_CO_SCT_REDUZIDO, FK_CO_SCT_CODEMPRESA)))
CRdS> PLAN SORT ((X CO_LCT INDEX (FK_CO_LCT_DEBITO, FK_CO_LCT_CODEMPRESA)))
CRdS> PLAN SORT ((X CO_LCT INDEX (FK_CO_LCT_CREDITO, FK_CO_LCT_CODEMPRESA)))
CRdS> FIELDS = [ Version 1 SQLd 3 SQLn 3
CRdS> [REDUZIDO] = <NIL> < LONG SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> [DC] = <NIL> < TEXT[!null] SubType: 1589 Len: 1 Scale: 0 Data: <nil> >
CRdS> [VALOR] = <NIL> < INT64 SubType: 1 Len: 8 Scale: -2 Data: <nil> > ]
CRdS> ----*/
CRdS> /*===
CRdS> [ 09/11/2017 14:10:23 ]
//>>>> STATEMENT PREPARED <<<//
CRdS> TIB_Statement.API_Prepare()
CRdS> TIB_Cursor: "DmContabil.CrSaldo_Conta" stHandle=60
CRdS> ====*/
CRdS> /*---
CRdS> [ 09/11/2017 14:10:23 ]
CRdS> DESCRIBE INPUT
CRdS> STMT_HANDLE = 60
CRdS> Dialect = 3
CRdS> PARAMS = [ Version 1 SQLd 14 SQLn 14
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG[!null] SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG[!null] SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < TYPE_DATE[!null] SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < SHORT[!null] SubType: 0 Len: 2 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < LONG SubType: 0 Len: 4 Scale: 0 Data: <nil> >
CRdS> = <NIL> < TYPE_DATE[!null] SubType: 0 Len: 4 Scale: 0 Data: <nil> > ]
CRdS> ----*/
CRdS> /*===
CRdS> [ 09/11/2017 14:10:23 ]
CRdS> (TApplication).DmContabil.CrSaldo_Conta.SysAfterPrepare()
CRdS> stHandle=60
CRdS> CharSet Information:
CRdS> Field Name:DC CharSet:WIN1252|WIN1252 Collate:WIN_PTBR CharLen:1 ByteLen:1
CRdS> ====*/
CRdS> /*===
CRdS> [ 09/11/2017 14:10:23 ]
CRdS> (TApplication).DmContabil.CrSaldo_Conta.trCrSaldo_Conta.API_Commit()
CRdS> (TApplication).DmContabil.CrSaldo_Conta.trCrSaldo_Conta.OpenCursors = 0
CRdS> ====*/
CRdS> Em 9 de novembro de 2017 11:23, Carlos H. Cantu
CRdS> <listas em warmboot.com.br> escreveu:
CRdS> Tem um componente monitordialog que mostra na tela mesmo.
CRdS> []s
CRdS> Carlos H. Cantu
CRdS> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
CRdS> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
CRdS>> O IB_Monitor cria um arquivo de log ?
CRdS>> Como faço para direcionar para um arquivo de log ?
CRdS>> Att.
CRdS>> Em 9 de novembro de 2017 10:06, Carlos H. Cantu
CRdS>> <listas em warmboot.com.br> escreveu:
CRdS>> Use o componente de Monitor do IBO para tentar ver em que parte do
CRdS>> processo está ocorrendo essa lentidão, e se for no código do IBO
CRdS>> mesmo, reporte para o Jason.
CRdS>> []s
CRdS>> Carlos H. Cantu
CRdS>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
CRdS>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
CRdS>>> Recentemente atualizei o IBO para a última versão e a partir daí alguns
CRdS>>> cursores/querys ficaram
CRdS>>> lentos ao executar o prepare.
CRdS>>> A mesma instrução SQL no FDQuery ( FireDac ) é instantâneo como era na
CRdS>>> versão anterior do IBO.
CRdS>>> Algum colega que passou por esta situação ?
CRdS>>> IBO versão 5.9.5_2652
CRdS>>> Firebird 2.1.7 - SuperServer
CRdS>>> SQL:
CRdS>>> select x.reduzido, x.dc, sum(x.valor) valor from
CRdS>>> (
CRdS>>> select
CRdS>>> reduzido,
CRdS>>> tpsaldo dc,
CRdS>>> sum(saldoinicial) valor
CRdS>>> from co_sct
CRdS>>> where
CRdS>>> (
CRdS>>> (codempresa=:codempresa) and
CRdS>>> (codfilial=:codfilial) and
CRdS>>> (reduzido between :reduzido_inicial and :reduzido_final)
CRdS>>> )
CRdS>>> group by 1, 2
CRdS>>> union all
CRdS>>> select
CRdS>>> debito reduzido,
CRdS>>> 'D' dc,
CRdS>>> sum(valor) valor
CRdS>>> from co_lct
CRdS>>> where
CRdS>>> (
CRdS>>> (co_lct.codempresa=:codempresa) and
CRdS>>> (co_lct.codfilial=:codfilial) and
CRdS>>> (debito between :reduzido_inicial and :reduzido_final) and
CRdS>>> (data<=:data)
CRdS>>> )
CRdS>>> group by 1, 2
CRdS>>> union all
CRdS>>> select
CRdS>>> credito reduzido,
CRdS>>> 'C' dc,
CRdS>>> sum(valor) valor
CRdS>>> from co_lct
CRdS>>> where
CRdS>>> (
CRdS>>> (co_lct.codempresa=:codempresa) and
CRdS>>> (co_lct.codfilial=:codfilial) and
CRdS>>> (credito between :reduzido_inicial and :reduzido_final) and
CRdS>>> (data<=:data)
CRdS>>> )
CRdS>>> group by 1, 2
CRdS>>> ) x group by 1, 2
CRdS>>> ______________________________________________
CRdS>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CRdS>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
CRdS>>> http://www.firebase.com.br/fb/artigo.php?id=1107
CRdS>>> Para consultar mensagens antigas:
CRdS>>> http://www.firebase.com.br/pesquisa_lista.html
CRdS>> ______________________________________________
CRdS>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CRdS>> Para saber como gerenciar/excluir seu cadastro na lista, use:
CRdS>> http://www.firebase.com.br/fb/artigo.php?id=1107
CRdS>> Para consultar mensagens antigas:
CRdS>> http://www.firebase.com.br/pesquisa_lista.html
CRdS> ______________________________________________
CRdS> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CRdS> Para saber como gerenciar/excluir seu cadastro na lista, use:
CRdS> http://www.firebase.com.br/fb/artigo.php?id=1107
CRdS> Para consultar mensagens antigas:
CRdS> http://www.firebase.com.br/pesquisa_lista.html
Mais detalhes sobre a lista de discussão lista