On 08-09-2016 09:43, Irineu Raymundo wrote: > Bom dia pessoal, > > Estou com um problema de lentidão numa rotina, se alguém puder me dar > uma luz do que eu poderia investigar fico imensamente agradecido. > > O banco é : "PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc > (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit" > > A trava aparentemente de forma aleatória, executa 2 dias normalmente e > parece que do nada trava na última função e fica mais de 4 horas sendo > obrigado a derrubar. > > Conferi quando trava e não tem nenhuma outra instrução que poderia faz > um lock nas tabelas. > > Basicamente ela cria tabelas temporárias, faz os cálculos necessários e > escreve numa tabela não logada(UNLOGGED) para poder imprimir o relatório > via ODBC. > 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, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral