Fórum lentidão com firebird 2.0, sendo o 1.5 mais rápido #58039
21/03/2007
0
Num computador semprom com 512 de ram e windows 2003 server, um relatório com o firebird 1.5 demorava cerca de 3 segundos.
Atualizando para o firebird 2.0, passou a demorar de 3 a 15 minutos!!!
e o que é pior, se pegar o mesmo banco, o mesmo ambiente e o firebird 2.0, mas usar windowsXP home, no lugar do windows 2003 server, o relatório sai quase que instantaneamente.
Que tipos de configurações ´finas´ que existem no firebird ou no windows 2003 para lidar com isso? alguém poderia me ajudar.
As queries mais lentas são as que usam ´not in´
Grato!
Vitor Rubio
Curtir tópico
+ 0Posts
22/03/2007
Gm.gui
Gostei + 0
22/03/2007
Vitor Rubio
Com relação a lentidão, criei um indice para um campo que estava sendo usado e ficou 40 vezes mais rápido. (de 2 minutos para 6 segundos)
a ordem dos filtros no where também faz diferença, veja: QUERO CONSULTAR ORDEM DE SERVIÇO SEM LANÇAMENTOS NO FINANCEIRO NUMA DETERMINADA DATA DE FINALIZAÇÃO
/*a ordem dos fatores altera o produto*/ /*exemplo de select lento*/ select O.dataosfin as dtlanc, O.total, O.os as lanc from os O where (O.codos not in (select distinct codaux from finan)) and ((O.dataosfin >= ´03/19/2007´) and (O.dataosfin <= ´03/19/2007´)) group by O.dataosfin, O.total, O.os order by O.os /*o mesmo select UMA PÁ DE vezes mais rápido*/ select O.dataosfin as dtlanc, O.total, O.os as lanc from os O where ((O.dataosfin >= ´03/19/2007´) and (O.dataosfin <= ´03/19/2007´)) and (O.codos not in (select distinct codaux from finan)) group by O.dataosfin, O.total, O.os order by O.os /*numa query sempre colocar o que trará menos resultados como primeiro filtro de um where*/
você só nota essa diferença numa tabela com muitos registros.
Gostei + 0
08/04/2007
Rodolpho123
Utilize NO EXSTIS em vez de NOT IN...Vai funcionar perfeitamente...
Gostei + 0
09/04/2007
Vitor Rubio
Uma coisa que eu achei interessante: usando o not in no firebird 1.5, o firebird exclui os registros que trariam oreferido campo como null. Já o firebird 2.0 traz os campos que retornariam null, porque ão sabe se está dentro ou não.
Esta é a diferença crucial na velocidade do firebird.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)