[Engine-devel] Opimizing Postgres Stored Procedures

Laszlo Hornyak lhornyak at redhat.com
Tue Aug 27 08:40:27 UTC 2013


Hi Eli,

Most of the functions that we have in the DB are doing very simple jobs like run a query, insert/update and I see that now you have all QUERY functions as STABLE.
My questions:
Is this required for new functions from now on?
Is this done in order to improve performance?

Thank you,
Laszlo

----- Original Message -----
> From: "Eli Mesika" <emesika at redhat.com>
> To: "engine-devel" <engine-devel at ovirt.org>
> Sent: Monday, August 26, 2013 11:22:20 AM
> Subject: [Engine-devel] Opimizing Postgres Stored Procedures
> 
> Hi
> 
> I had merged the following patch
> http://gerrit.ovirt.org/#/c/17962/
> 
> This patch introduce usage of the IMMUTABLE, STABLE and STRICT keywords in
> order to boost performance of the Postgres SPs.
> 
> Please make sure that your current/and future DB scripts applied that.
> 
> 
> Volatility
> ----------
> * A function should be marked as IMMUTABLE if it doesn't change the database,
> and if it doesn't perform any lookups (even for database configuration
> values) during its operation.
> * A function should be marked STABLE if it doesn't change the database, but
> might perform lookups (IMMUTABLE is preferable if function meets the
> requirements).
> * A function doesn't need to be marked VOLATILE, because that's the default.
> 
> STRICTNESS
> ----------
> A function should be marked STRICT if it should return NULL when it is passed
> a NULL argument, and then the function won't even be called if it is indeed
> passed a NULL argument.
> 
> 
> I am available for any questions.
> 
> Thanks
> 
> Eli
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 



More information about the Engine-devel mailing list