Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto Albuquerque

Update de 26 milhoes de registros

Recommended Posts

Bom Dia,

Sou novo no forum e estou com uma duvida/problema com relação a um update que estou realizando.

Eu tenho duas bases de dados uma com 26 milhoes de registros e uma outra com 147 milhoes de registros.

Estou fazendo um update onde eu pego um campo da base de 147 milhoes para atribuir na base de 26.

So que o q esta ocorrendo é o seguinte, esse update esta rodando a 22 horas e 30 min. e ate agora nada.

Gostaria de saber se tem algo q eu possa fazer para melhorar a performace, ou se esta algo errado.

vou colocar abaixo o update q estou utilizando para q vcs possam me ajudar, lembro tb que nenhuma das duas bases estao indexadas.

 

 

UPDATE ALEXANDRE..EXTRACAO_ALEXANDRE_20060619 SET

NOME_MAE = M.NOME_MAE

FROM ALEXANDRE..EXTRACAO_ALEXANDRE_20060619 A,[023052006HDACH] M

WHERE O_CPF_COMPLETO=CPF

 

 

 

Valeu galera pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho.. 2 coisas...

qdo se faz um update deste tamanho.. demora mesmo, dias... e acaba com a memória e disco tb do servidor... e muitas vezes não termina e dá rollback.. vixi.. podre...

pq é uma operação que na verdade é uma transação... e pode gerar ROLLBACK.. desta forma, o arquivo de log vai pro saco, a memória tb...

 

2 formas normalmente utilizadas para fazer... criar uma tabela com estas informações e depois substituir a antiga (caso não tenha chaves estrangeiras integradas, etc...) desta forma não usa o controle de log para esta ação...

SELECT a.campo1, b.campo1, a.campo2, a.campo3INTo TABELA_NOVAfrom a.tabela, b.tabela ......

ou com cursor... fazendo commit na transação a cada 10.000 updates, por exemplo.. assim, o arquivo de log é poupado, porém a memória é utilizada pelo cursor....

CURSOR....LOOP NO CURSORUPDATE NO REGISTRO ID = CURSOR_LINHA1COMMIT A CADA 10.000FIM DO LOOP
lembrando de criar indice nos campos chaves para otimizar a busca em ambas as formas

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.