> Pessoal, > > Tenho uma função > > CREATE OR REPLACE FUNCTION f_soma_diautil(vdtini date, vhrini time without > time zone, vdtfim date, vhrfim time without time zone, vcodemp integer, vuf > text, vcidade text) RETURNS double precision > > que retorna a diferença de tempo entre vdtfim e vdtini, no caso essa função > serve para saber se um objeto está pendente ou não (a mais de 24 horas, ou > 86400::double precision). > > Tenho uma view que retorna a quantidade de objetos pendentes separados por > filial, a tabela em sí possui mais de 8 milhões de registros e o select sem > a função leva em torno de 118ms. A função, executada isoladamente leva em > torno de 29ms, mas quando eu adiciono a função no WHERE da view (AND > funcao() >= 86400), o select está levando em torno de 50000ms. O que pode > estar errado?
Um select sobre visão "reescreve" a consulta. EXPLAIN ANALYZE em cada uma (na que vai rápido e na que vai demorado) deve te dar a resposta (ou nos ajudar a ajudá-lo). []s __________________________________ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: [email protected] ______________________________ FREE SOFTWARE SOLUTIONS _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
