Tenho que copiar os registro de cada tabela de um banco de dados em outro banco de dados, os campos e tabelas são todas as mesmas.
Avaliando através das tabelas do sistema eu ia gerando strings de Insert e ia inserindo no outro banco.
Funciona, porém o desempenho fica horrível.
Então pensei e salvar primeiramente as strings de inserts por tabela em um array de Strings para depois ir inserindo no outro banco, mais também ficou muito lento
Alguém tem alguma idéia?
O banco tem umas 200 tabelas e a média fica em torno de 500000 registros.
Normalmente, quando se faz isso, usa-se alguma ferramenta do banco de dados. No caso do Oracle, por exemplo, pode-se usar IMP e EXP - as ferramentas exportam e importam dados para um formato especial. Isso pode ser comandado via programa também, é questão de ver a documentação do seu banco.
Caso tenha que ficar com ele, o esquema é fazer exatamente o que você falou, ler cada registro de cada tabela montando um script com o DML insert pra cada linha… (INSERT INTO …)
O MySql na suíte de ferramentas que ele disponibiliza, o backup funciona assim, gerando o tal script.
O Pervasive é o sucessor do BTrieve, muito usado no tempo em que bancos de dados eram acessados por aplicações em C e Cobol. Ele foi um dos primeiros bancos de dados para micro e minicomputadores, e um dos primeiros a usar B-Trees; nesse tempo nem havia acesso SQL, se não me engano.