Caros colegas:
Estou portando uma aplicação do Oracle 10g para o PostgreSQL 8.2.7, mas estou
encontrando alguns problemas relacionados à performance. Para exemplificar,
criei o seguinte:
PLPGSQL:
--------------------------------------
CREATE OR REPLACE FUNCTION function1()
RETURNS numeric AS
$BODY$
DECLARE
i INTEGER;
s integer;
v_tempo numeric;
BEGIN
SELECT (EXTRACT(minute FROM current_timestamp) * 60) + EXTRACT(second FROM
current_timestamp) into v_tempo;
FOR i IN 1 .. power(10, 8) LOOP
s := s + 1;
END LOOP;
SELECT ((EXTRACT(minute FROM current_timestamp) * 60) + EXTRACT(second FROM
current_timestamp)) - v_tempo into v_tempo;
RETURN v_tempo;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
PLPGSQL:
--------------------------------------
create or replace FUNCTION FUNCTION1 return number AS
i INTEGER;
s integer;
v_tempo number;
BEGIN
SELECT (EXTRACT(minute FROM current_timestamp) * 60) + EXTRACT(second FROM
current_timestamp) into v_tempo FROM dual;
FOR i IN 1 .. power(10,8) LOOP
s := s + 1;
END LOOP;
SELECT ((EXTRACT(minute FROM current_timestamp) * 60) + EXTRACT(second FROM
current_timestamp)) - v_tempo into v_tempo FROM dual;
RETURN v_tempo;
END FUNCTION1;
No Oracle, a mesma leva 3.5 s, e no Post, mais de 60s!
O que é que eu estou fazendo de errado? O PostgreSQL/PLPGSQL é realmente mais
lento do que o PL/SQL do Oracle?
Atenciosamente,
Márcio de Figueiredo Moura e Castro
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral