Was bedeutet "SPRACHE plpgsql VOLATILE COST 100" bedeutet in Funktionen
Ich bin neu in der Postgres-Trigger. Ich sah ein Beispiel von Triggern, die auf www.postgresql.org und ich Verstand nicht, was LANGUAGE plpgsql VOLATILE COST 100;
am Ende des trigger-Funktion.
Was ist der nutzen dieser Linie?
Ich sah eine Frage in Bezug auf diese was bedeutet "SPRACHE " plpgsql' VOLATILE" bedeuten?
aber es ist nur über volatile
, was ist cost 100
und language
in dieser Zeile?
- Start hier und kommen wieder, wenn es etwas unklar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
LANGUAGE plpgsql VOLATILE COST 100;
SPRACHE:-Programmiersprache für das erstellen der stored procedure in PostgreSQL.
Hier ist es plpgsql.
FLÜCHTIGEN:-In PostgreSQL Jede Funktion hat eine Volatilität Klassifizierung und flüchtig ist eines von Volatilität Klassifizierung. Eine VOLATILE Funktion alles tun können, einschließlich der änderung der Datenbank. Es ist Standard, kann also weggelassen werden.
KOSTET 100:- KOSTEN ist völlig unabhängig vom VOLATILE. Es erklärt die Kosten pro Zeile des Ergebnisses, die durch die query-planner finden Sie die günstigsten plan. Der Standardwert ist KOSTEN 100, die auch weggelassen werden können. Es ist besser, Sie belassen es bei der Standardeinstellung.
Können Sie mehr Programmiersprachen für gespeicherte Prozeduren Programmieren in Postgres. So obligatorische attribut LANGUAGE gibt die Sprache - plpgsql, sql, plpython, plperl, ...
Diese Funktionen sind black-box für optimizer - optimizer nicht wissen, was drin ist und wie teuer dieser code ist. Optimierer können wählen, eine Art und Weise, wie eine SQL-Abfrage berechnet werden und es kann zu bevorzugen oder zu minimieren und eine Bewertung einiger Funktionen. Funktionen mit niedrigen Kosten bevorzugt und Funktion mit hohen Kosten bestraft wird. KOSTEN +/- Wert wie die Funktion ist zwar teuer (wie die Funktion ist schnell oder langsam). Fast alle eingebauten Funktionen haben KOSTEN 1, pgAdmin benutzt KOSTEN 100 für die benutzerdefinierte Funktion - es zeigt die Erwartung so plpgsql-Funktionen langsamer sein wird als built-in-Funktionen. Die KOSTEN sind nicht linear - so bedeutet es nicht so plpgsql-Funktion ist 100x langsamer als die integrierte Funktion.