quarta-feira, 6 de julho de 2011

Re: [java-br] Otimizar geração de arquivo CSV

·

Existe várias formas de você otimizar a consulta, uma delas é no select da
base, onde vc deve começar filtrando do atributo mais restritivo ao menos
restritivo, tipo select na tabela que vai conter os dados que menos vão
aparecer fazendo join nas tabelas que menos restritivas, ex.:

Ao invés de fazer um select em ItemsPedido com join em pedido, faça um
select em pedido fazend join em itensPedido, cliente etc...

também é possivel otimizar sua aplicação usando hibernate cahe para
consultas demoradas.

LinkedLyst sao mais rápidas que ArrayList para inserção de elementos no
entanto ArrayList é mais rápido para remoção de elementos

Considere usar o padrão decorator ond vc cria um objeto com os atributos
específicos para o arquivo csv, e também c vc não está trazendo muito objeto
pendurado (Consulte o Lazy do JPA)em cascata no seu select, tipo informação
não utilizada para esse arquivo csv

Tavez seja interessante usar sql nativo ao invés de critéria ou HQL... caso
não esteja usando o decorator

no mais poste o código do select pra gente ver e depois o código que chama a
lista para vc iterar sobre ela..

Fallow
Abraço

Em 6 de julho de 2011 16:11, Leonardo Nardi <dsnardi@gmail.com> escreveu:

> Olá a todos do grupo!
>
> Estou enfrentando um problema no momento em que estou gerando um arquivo
> CSV. O que acontece é que, para uma determinada consulta, há o retorno de
> 11353 registros do BD. Isto está demorando muito no instante da chamada do
> método que varre a lista com estes registros(11353) e vai gerando o
> arquivo.
> No final dá timeout, dando erro 404 na tela e não gera o arquivo. Para
> gerá-lo estou criando o seguinte objeto:
>
> *RegistroBean registroBean;*
> *PrintWriter printWriter = new PrintWriter(response.getWriter(), false);*
> *BufferedWriter bw = new BufferedWriter(printWriter);*
> *
> for(Iterator it = listaX.iterator(); it.hasNext();) {
> registroBean = (RegistroBean) it.next();
> *
> bw.write("Dado 1");
> bw.write(';');
> bw.write("Dado 2");
> bw.write(';');
>
> Gostaria de saber o que posso fazer para otimizá-lo?
>
> Desde já, antecipadamente, agradeço a atenção dispensada.
>
> Leonardo Nardi
>
> "Quando plantardes para um ano, semeai grão. Quando plantardes para uma
> década, plantai árvores. Quando plantardes para uma vida, educai o homem.
> Se
> derdes ao homem um peixe, ele se alimentará uma vez. Se lhe ensinardes a
> pescar, ele se alimentará a vida inteira."
> Autor: Kuan Tzu - III Século a.c.
>
> "A ciência sem religião é aleijada;
> a religião sem ciência é cega."
> Autor: Albert Einstein
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
> Para upload/download de arquivos:
> http://www.yahoogroups.com/files/java-brLinks do Yahoo! Grupos
>
>
>


--
Paulo Roberto de A.S. Leite


[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-brLinks do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/java-br/

<*> Para sair deste grupo, envie um e-mail para:
java-br-unsubscribe@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog