GARANTIR DESCONTO

Fórum ECO III performance #345667

08/09/2007

0

Bom dia!

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

Robertofilho

Responder

Posts

15/09/2007

Robertofilho

Olá Srs.

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


Responder

Gostei + 0

18/09/2007

Brjedi

Quando se usa <classe>.allInstances é o mesmo que fazer SELECT * FROM <tabela>.

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


Responder

Gostei + 0

31/12/2007

Robertofilho

Ola Amigo!

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar