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

Reply via email to