[firebase-br] Regressão no Firebird???
Denis Pereira Raymundo
denisuba em gmail.com
Ter Maio 10 15:55:02 -03 2016
Aqui na empresa gostamos muito do Firebird, mas desta vez aconteceu um
episódio muito estranho. Quando atualizamos um cliente que estava na versão
2.5.1 para a 2.5.5 uma SQL simplesmente parou tudo. Trouxemos o banco para
análise e fizemos teste também na versão 3.0.0 e por incrível que pareça
continuou com o mesmo problema:
Na versão 2.5.1 o comando roda em milissegundos, já nas versões mais
novas demora 4 minutos e meio.
Achei que fosse algo relacionado à escolha do plano de execução, mas
forçando o mesmo plano, as leituras ao disco continuaram muito altas. Vejam
os logs abaixo:
Se alguém ( tipo Cantú :-) ) quiser dar uma olhada, tenho como enviar a
SQL e o banco apenas com as tabelas envolvidas.
Em tempo: Já revolvemos o problema modificando a forma como a SQL era
feita. O problema é que o pessoal perde a confiança nas versões mais novas e
não quer atualizar outros clientes com medo de se deparar com outros
problemas do tipo.
Firebird 2.5.1
PLAN (DP_REGISTRO_OEST INDEX (UNQ1_DP_REGISTRO_OEST))
PLAN (DP_FERIAS INDEX (DP_FERIAS_IDX1, FK_DP_FERIAS_3))
PLAN JOIN (JOIN (JOIN (JOIN (DP_REGISTRO NATURAL, DP_RECIBO INDEX
(FK_DP_RECIBO_1)), DP_RECIBO_EVE INDEX (FK_DP_RECIBO_EVE_1,
DP_RECIBO_EVE_IDX2)), DP_EVENTO INDEX (RDB$PRIMARY_DP_EVENTO)),
DP_RECIBO_PER_ANTERIOR INDEX (FK_DP_RECIBO_PER_ANTERIOR_1))
------ Performance info ------
Prepare time = 0ms
Execute time = 16ms
Current memory = 1.382.144
Max memory = 2.246.624
Memory buffers = 75
Reads from disk to cache = 141
Writes from cache to disk = 0
Fetches from cache = 4.731
Firebird 3.0
PLAN (DP_REGISTRO_OEST INDEX (UNQ1_DP_REGISTRO_OEST))
PLAN (DP_FERIAS INDEX (DP_FERIAS_IDX1))
PLAN JOIN (JOIN (JOIN (JOIN (DP_REGISTRO NATURAL, DP_RECIBO INDEX
(FK_DP_RECIBO_1)), DP_RECIBO_EVE INDEX (FK_DP_RECIBO_EVE_1,
DP_RECIBO_EVE_IDX2)), DP_EVENTO INDEX (RDB$PRIMARY_DP_EVENTO)),
DP_RECIBO_PER_ANTERIOR INDEX (FK_DP_RECIBO_PER_ANTERIOR_1))
------ Performance info ------
Prepare time = 16ms
Execute time = 4m 32s 844ms
Current memory = 2.960.928
Max memory = 3.030.104
Memory buffers = 90
Reads from disk to cache = 5.693.279
Writes from cache to disk = 0
Fetches from cache = 9.345.611
Obrigado pela ajuda.
Denis Pereira Raymundo
"O seu Deus o ensina e o instrui acerca do que há de fazer" Is 28.26
Mais detalhes sobre a lista de discussão lista