Em 08/09/2016 17:01, Fabrízio de Royes Mello escreveu:
On 08-09-2016 09:43, Irineu Raymundo wrote:
Bom dia pessoal,

Estou com um problema de lentidão numa rotina...
Essa tabela fica com mais ou menos 2 milhões de registros, e tem uns 11
índices.

Segue abaixo a rotina:

TRUNCATE senda.ind_03_03_04_01_lev CASCADE;
TRUNCATE senda.ind_03_03_04_01_01_lev CASCADE;
TRUNCATE senda.ind_03_03_04_01_01_a1_lev;
REINDEX TABLE senda.ind_03_03_04_01_lev;
Porque o REINDEX em uma tabela que vc recém efetuou um TRUNCATE? O
TRUNCATE recria todos datafiles envolvidos (heap e btree).


VACUUM FULL ANALYZE senda.ind_03_03_04_01_01_lev;
VACUUM FULL ANALYZE senda.ind_03_03_04_01_01_a1_lev;
VACUUM FULL ANALYZE senda.ind_03_03_04_01_lev;
VACUUM FULL ANALYZE senda.ind_03_03_03_02_oc;
Aqui vc efetua um VACUUM FULL novamente e talvez sem necessidade,
principalmente pelo fato da "senda.ind_03_03_04_01_lev" ter sido
truncada anteriormente. Será que as demais tabelas não são truncadas
junto com as anteriores devido ao "CASCADE"???


SET temp_buffers=30000;
Setando dessa forma vc está informando ao PostgreSQL para usar ~234,38MB
= (30000*8kB)/1024.

SELECT senda.ins_mat_lev_cria_indices();
SELECT senda.ins_mat_lev_1('9999999998');
SELECT senda.ins_mat_lev_2('9999999998');
SELECT senda.ins_mat_lev_3('9999999998');
SELECT senda.ins_mat_lev_4('9999999998');
SELECT senda.mat_marca_cliente_lev('9999999998','LEVMAT',NULL,1256);

Dificil te ajudar sem saber exatamente o que essas PLs fazem.


Até esse ponto vai tranquilo, coisa de 5 minutos,  a próxima função
descarrega os registros( 2 milhões) das temporáriad para as tabelas
UNLOGGED e aí que trava de vez em quando.

Precisamos de mais detalhes para poder ajudar!

Att,


Antes de mandar os códigos-fonte das Pls(que são enormes) resolvi revisar toda a rotina levando em conta os comentários do Fabrízio. Tirei o REINDEX depois do CASCADE, diminui o valor do temp_buffer da sessão e a rotina estabilizou, não trava mais.

Obrigado  pela ajuda!!!

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a