JDBC - alto consumo de memória

3 respostas
marcusco

Ei amigos.

Desenvolvi um importador que pega toda estrutura de um banco de dados
Firebird e cria um banco identico no Oracle.

O problema acontece na tranferência de dados…O programa fica tão lento,
que a thread parece que paoru de executar…

Parte do código:

psOra.addBatch();
                if (controle % 500 == 0) {                        
                    psOra.executeBatch();
                    ConOracle.commit();
                    psOra.clearBatch();
                    psOra.close();
                    psOra = null;
                    psOra = ConOracle.getConnection().prepareStatement(tab.getInstrucaoSQL());

como podem ver , utilizo jdbc com addBatch…

Preciso de uma dica para otmizar e importar todo banco rapidamente…

Obrigado.

3 Respostas

E

Crie um programa que gere um arquivo-texto em um formato específico para ser importado por uma das ferramentas do Oracle (como imp ou exp).
Isso é de longe muito mais rápido que você usar addBatch ou coisas parecidas.
Isso não é problema do JDBC; é característico de bancos de dados.

marcusco

entanglement:
Crie um programa que gere um arquivo-texto em um formato específico para ser importado por uma das ferramentas do Oracle (como imp ou exp).
Isso é de longe muito mais rápido que você usar addBatch ou coisas parecidas.
Isso não é problema do JDBC; é característico de bancos de dados.

Obrigado pela dica… mas existem tarefas específicas que devem ser checadas…
O novo banco de dados, Oracle, têm que estar identico ao Firebird.

Precisava de uma configuração para diminuir a paginação…assim acho
que poderá resolver.

E

Uai, se o banco tem de estar igualzinho, mais um motivo para usar o “imp”. Drope ou trunque a tabela, recrie a tabela, execute o imp, e então defina os índices e outros “constraints”. Reindexar a tabela depois de importar os dados é bem mais rápido que inserir os dados com a tabela já indexada.

Criado 23 de novembro de 2009
Ultima resposta 23 de nov. de 2009
Respostas 3
Participantes 2