Fórum ECO III performance #345667
08/09/2007
0
Estou desenvolvendo uma aplicação no delphi 2006 utilizando ECO III com Sql Server para uma aplicação ASPNET. Uso os componentes de persistencia e conecxão do banco de dados PersistenceMapperBdp e BdpConnection.
Essa aplicação tem sido desenvolvida há 1 ano, e finalmente quando fiz os testes final de carga de dados, fiquei bastante preoculpado, pois inseri 200.000 registro em uma tabela simples ´Classe´, e quando fui efetuar uma consulta do tipo ´TPessoa.allInstances->select(Nome=´jose´)´, essa consulta demorou cerca de 15 segundos, e isso inviabilizaria a minha aplicação.
Fiz o mesmo teste sem usar a OCL do ECO III, fazendo um acesso direto ao banco de dados via componentes BdpConnection e BdpDataAdapter, e a consulta foi instantânea.
Utilizo um notebook toshiba core 2 duo com 2GB de ram, e sinceramente não sei o que fazer pois toda a minha aplicação se sustenta em cima do ECO III, se alguém já passou por isso gostaria muito de houvir a sua opinião ou se possível a solução desse problema.
um abraço
Roberto Filho
Robertofilho
Curtir tópico
+ 0Posts
15/09/2007
Robertofilho
Após varios testes com cargas de dados com até 1 milhao de registro em uma tabela. eu concli que:
O eco é muito bom para tabalhar com objetos localizados atraves da funcao objectforid(), e NAO deve se usar a OCL language.. do tipo TPesso.AllInstances... pois vc sobrecarrega a memoria da sua maquina e a consulta é muito lenta.. para contornar esse problema vc deve consultar diretamente o banco de daados via SQL.. e assim tudo fica bonito
espero ter ajudado com essa conclusao
Gostei + 0
18/09/2007
Brjedi
Tenho uma aplicação desenvolvida em ECO III (que aliás será mostrada na Borcon 2007) que tem classes/tabelas com mais de 20.000 registros. Não tive problemas de performance, mas foi necessário criar alguns indices ´na mão´ para consulta ficasse mais rápida.
Nos vemos na Borcon 2007
[]s,
Jorge Bublitz
Gostei + 0
31/12/2007
Robertofilho
acho que vc nao entendeu se eu fizer uma consulta em uma base de dados de um milhao de registros via ocl = TPessoa.alinstances->select(nome=´roberto´).. essa consulta vai demorar 1 minuto para ser retornada, se eu e com um consumo enorme de memoria ram. e se e fizer a mesma consulta direto no bd com sql = select * from tpessoa where nome=´roberto´ ela me retorna em 1 segundo com pouquissimo consumo de memoria. Concluindo.. se vc pretende fazer uma aplicacao comercial para uma empresa de médio porte vc certamente terá porblemas se usar a OCL. Eu nao sei como os engenheiros da borland deixaram passar isso...
um abraço
roberto
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)