Eu tenho cerca de 84 milhões de linhas. Desses, todos eles precisam ser transferidos para um banco de dados separado no mesmo servidor, e excluo para excluir cerca de 60 milhões de linhas do banco de dados de origem.
Os 84 milhões de linhas estão todos na mesma tabela. Somente essa tabela responde por 90% de todo o banco de dados.
Então ... Fonte: 84 milhões de linhas -> 24 milhões de linhas Destino: 0 linhas -> 84 milhões de linhas
A fonte está executando o modo de recuperação completa, o destino estará executando de forma simples.
Gostaria de saber qual seria a maneira mais eficiente de fazer isso?
Plano A:
1) INSERIR NO destino SELECIONE * DA fonte
2) TRUNCATE fonte
3) INSERT NA fonte SELECT * FROM destino ONDE keep_condition = 1
Plano B:
1) Restaure um backup do banco de dados de origem como o banco de dados de destino
2) Solte todas as tabelas, exceto a necessária no banco de dados de destino
3) Fonte TRUNCATE
4) INSERIR NA ORIGEM SELECIONE * DO destino ONDE keep_condition = 1
Plano C:
1) INSERIR NO destino SELECIONE * DA fonte
2) DELETE source WHERE keep_condition = 0
ou alguma outra coisa?
obrigado