[firebase-br] Out of memory - Muitos registros na tabela

Nivaldo Martins nivaldomart em gmail.com
Sex Fev 10 09:20:27 -03 2012


Olá, talvez o subselect esteja causando a lentidão

use:

para os primeiros 10.0000:

select first 10000 from tabela

para os seguintes:

select first 10000 skip 10000 from tabela

select first 10000 skip 20000 from tabela

e assim por diante

veja se melhora


sds,

Nivaldo Martins
Salvador - BA



Em 10 de fevereiro de 2012 08:46, Diego Bulgarelli
<diegobulg em gmail.com>escreveu:

> Bom dia! :)
>
> Não sei se é a melhor solução, mas e se você selecionar de blocos em blocos
> de registros?
> Ex:
> SELECT FIRST 10000  --> Pega os 10000 primeiros registros
> FROM TABELA
> ORDER BY CODIGO;
>
> SELECT FIRST 10000  --> Pega os 10000 primeiros registros, que não
> estiverem dentro dos 10000 já retornados
> FROM TABELA
> *WHERE CODIGO NOT IN (SELECT FIRST 10000 FROM TABELA ORDER BY CODIGO) *
> ORDER BY CODIGO;
>
> SELECT FIRST 10000  --> Pega os 10000 primeiros registros, que não
> estiverem dentro dos 20000 já retornados
> FROM TABELA
> WHERE CODIGO NOT IN (SELECT FIRST *20000* FROM TABELA ORDER BY CODIGO)
> ORDER BY CODIGO;
>
> Espero ter ajudado
> Diego Bulgarelli
>
> Em 10 de fevereiro de 2012 08:36, Marcos Weimer
> <marcosweimer em gmail.com>escreveu:
>
> > Bom dia
> >
> > Estou desenvolvendo uma rotina que transfere os dados de uma tabela
> > especifica de um banco para outro.
> > Faço da seguinte forma.
> > - Monto a query dinamicamente conforme os campos da tabela
> > - rodo o select
> > - conecto no outro banco e vou transferindo os dados
> > ae chega uma hora que ocorre o out of memory
> >
> >
> > Se rodo o select e efetuo o fetchall na query ae ja vai tudo para o
> brejo.
> >
> > A tabela tem as seguintes caracteristicas:
> > - 96 campos (numeric, string, varchar, date)
> > -  4.365.973 registros
> > Isso mesmo.... este é o numero de registros que a query me retorna se
> > executo um recordcount antes do fetchall
> >
> > Se não executo o fetchall o erro tb ocorre mais demoooooora pra chegar
> até
> > o ponto que acaba com a memoria...
> > a cada 8 registros que passo, aloca de 8 a 12K de memoria
> >
> > Para conexão com o banco uso IBO 4.9.12
> >
> > Lembrando que isso aconteceria apenas em uma primeira sincronização,
> depois
> > seria transferido apenas os dados alterados.
> >
> > e ai.. alguma sugestão ? tem como "descarregar" os registros que ja
> > passaram ??? (estou na pagina 2 e descarregar a 1)
> >
> > Mandei email aqui, pq acho que esta mais ligado a banco do que ao
> framework
> > de desenvolvimento.
> >
> > att
> >
> > -=Ma®©oS=-
> > Marcos R. Weimer
> > Puma GTE 1974 Tubarão
> > Delphi / C# / ASP.NET / WebServices / Firebird
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista