Em 13 de novembro de 2012 11:21, Giuliano Grego <grego...@gmail.com> escreveu:
>
>
> Bom dia !

Bom dia!

> Estou rodando 3.180 comandos UPDATE (
> UPDATE areas SET mun_geocodigo = '3204906' WHERE num_prop = '23611'; por 
> exemplo), numa tabela com as mesmas 3.180 linhas, e isso está demorando 
> horas; no último teste que fiz numa tabela com a metade do tamanho  : "Query 
> returned successfully: 1909 rows affected, 75451361 ms execution time."

Você não conseguiria trocar estes 3.180 comandos por apenas um? Ou a
essência da modificação de dados requer que cada linha receba valores
diferentes? Um único comando UPDATE é mais rápido que disparar vários.
Se possível faça isso.

> Meu computador é localhost; ninguém mais usando o banco; banco com 2 funções 
> de gatilho para cópia de registros entre tabelas ligadas; enfim, um banco 
> super singelo que roda em intranet.

Sem ter o conteúdo (código) dos gatilhos não há como ajudar muito. A
rede neste caso não interfere em nada. Para o PostgreSQL 3000
registros não representam grande massa de dados, o SGBD tira de letra.
O que pode estar interferindo e causando a demora são estes TRIGGERs.
Já parou para revisar seu código?

> Fiz testes com os mesmos números de comandos insert e delete nas mesmas 
> tabelas e demorou alguns segundos apenas.

Mais um argumento para culpar os TRIGGERs - se eles forem BEFORE/AFTER UPDATE.

> A configuração de meu computador que está como servidor é:
> Processador:  AMD Phenom II X4 945 3.00 GHz
> 8 gb de ram
> Win 7 professional.

Esqueceu da especificação principal: disco. Em uma operação de
alteração de registros o gargalo ficará no disco, exceto se existir
uma rotina mal escrita em TRIGGER que abuse de memória e CPU.

> Vi um outro post na lista sobre o mesmo tema, mas que tratava sobre um banco 
> com 20 milhões de registros .....
> Mesmo assim dei uma conferida nas minhas conf's e não tem nada de anormal; já 
> fiz coisa pior no passado e nunca demorou mais que 10 seg o processamento.

Como assim? Os mesmos comandos UPDATE no passado levavam 10 seg? Os
TRIGGERs que você se referiu já existiam n'aquele tempo?

--
TIAGO J. ADAMI
http://www.adamiworks.com
@tiadami
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to