Em sex, 2 de jun de 2017 às 15:55, Fabrízio de Royes Mello < [email protected]> escreveu:
> > > Em 2 de junho de 2017 10:46, Alexsander Rosa <[email protected]> > escreveu: > > > > A tabela tem cerca de 1 Gb: > > SELECT pg_size_pretty(pg_relation_size('cf_cupom')); > > pg_size_pretty > > ---------------- > > 1114 MB > > (1 registro) > > > > Existe um índice UNIQUE no campo utilizado na query: > > "idx_cupom_chave" UNIQUE, btree (nfce_chave_acesso_fk) WHERE > nfce_chave_acesso_fk IS NOT NULL > > > > O campo utilizado também é FOREIGN KEY: > > "cupom_chave_nfe_fkey" FOREIGN KEY (nfce_chave_acesso_fk) REFERENCES > nfe_xml(chave_acesso) DEFERRABLE > > > > Código da procedure de teste: > > CREATE OR REPLACE FUNCTION rnx.sp_teste(chave text) > > RETURNS text > > LANGUAGE plpgsql > > AS $function$ > > DECLARE > > BEGIN > > RAISE NOTICE '(%)', clock_timestamp()::timestamp(6); > > -- EXECUTE 'SELECT cod_empresa_fk FROM cf_cupom WHERE > nfce_chave_acesso_fk = $1' INTO empcupom USING chave; > > PERFORM num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk = chave; > > RAISE NOTICE '(%)', clock_timestamp()::timestamp(6); > > -- demora 1617 ms > > > > PERFORM chave_acesso from nfe_xml where chave_acesso = chave; > > RAISE NOTICE '(%)', clock_timestamp()::timestamp(6); > > -- demora 21 ms > > > > Return 'OK'; > > END; > > $function$ > > ; > > > > Comparativo: > > select sp_teste('43170605563868000113657010000004061895261728'); > > -- demora 1630 ms > > > > select num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk = > '43170605563868000113657010000004061895261728'; > > -- demora 11 ms > > > > Foi feito um VACUUM FULL ANALYZE na tabela. > > Alguém tem alguma dica para ajudar em nossa investigação? > > > > Faz o seguinte, remove aqueles "RAISE NOTICE" da sua PL e roda no psql com > o "\timing on"... > Ah, vou eleger 2 de junho como dia internacional da consulta lenta inexplicável... só hoje foram duas no meu trampo. Ao OP, cadê os EXPLAIN (analyze, timing, buffers) SELECT... ? []s Flavio Gurgel
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
