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

Marcos Weimer marcosweimer em gmail.com
Sex Fev 10 09:42:26 -03 2012


between tem de saber exatamente os valores de inicio/termino... assim com o
skip não

bem mais facil, ao menos neste caso que estou precisando agora, é utilizar
o skip.


-=Ma®©oS=-
Marcos R. Weimer
Puma GTE 1974 Tubarão
Delphi / C# / ASP.NET / WebServices / Firebird




Em 10 de fevereiro de 2012 09:29, Felipe Aron <felipearon em gmail.com>escreveu:

> Interessante o esquema do SKIP. Nesse caso, é mais interessante, em termos
> de performance usar o *skip *ou *between*?
>
> Em 10 de fevereiro de 2012 09:20, Nivaldo Martins
> <nivaldomart em gmail.com>escreveu:
>
> > 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
> > >
> > ______________________________________________
> > 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
> >
>
>
>
> --
> Analista-Programador
> #FollowMe: @felipearon <http://twitter.com/felipearon> (
> http://felipearon.net)
> ______________________________________________
> 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