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