[#] Prosta funkcja PL/pgSQL - testujemy szybkość PostgreSQL

( Ostatnio zmieniony śr., 13/05/2009 - 21:33 )
 

PL/pgSQL jest językiem proceduralnym wspieranym przez RDBMS PostgreSQL. Język ten jest bardzo podobny do języka proceduralnego PL/SQL w bazie Oracle.

PL/pgSQL jest prawdziwym językiem programowania, o znacznie większych możliwościach niż język SQL, umożliwiającym m.in. stosowanie pętli i zaawansowanych struktur sterujących. Programy napisane w języku PL/pgSQL są funkcjami, które można stosować jako część polecenia SQL albo jako wyzwalacz.

Główne zalety języka PL/pgSQL:

– może być używany do tworzenia funkcji i wyzwalaczy,
- dodaje struktury sterujące do języka SQL,
- można wykonywać złożone obliczenia,
- dziedziczy wszystkie typy zdefiniowane przez użytkownika, funkcje i operatory,
- może zostać zdefiniowany jako zaufany dla serwera,
- jest łatwy do użycia.

PL/pgSQL jest jedynym „PL“ instalowanym domyślnie dla PostgreSQL, lecz dostępnych jest wiele innych, takich jak PL/Java, PL/Perl, plPHP, PL/Python, PL/R, PL/Ruby, PL/sh, czy PL/Tcl.

Utworzenie funkcji:

CREATE LANGUAGE "plpgsql";

CREATE FUNCTION test() RETURNS int4 AS '

  DECLARE
    i INTEGER;
  BEGIN
    i:=0;

    LOOP
        IF i > 400000 THEN
      EXIT;
        END IF;
      i:=i+1+1-1;
    END LOOP;
    return i;
  END;
'

Użycie:

LANGUAGE 'plpgsql';
SELECT test();

Usunięcie

DROP FUNCTION test();

źródła:
http://pl.wikipedia.org/wiki/PL/pgSQL
http://www.postgresql.org/…plpgsql.html

5
Twoja ocena: Brak Średnio: 5 (2 głosy)