> 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

Responder a