On Wed, May 26, 2010 at 12:32 PM, Stephen Frost <sfrost@xxxxxxxxxxx> wrote:
* Eliot Gable (egable+pgsql-performance@xxxxxxxxx) wrote:
> Thanks for the quick follow-up. So, you are saying that if I can do SPI inUnless you're using EXECUTE in your pl/pgsql, the queries in your
> _PG_init, then I could prepare all my queries there and they would be
> prepared once for the entire function when it is loaded? That would
> certainly achieve what I want. Does anybody know whether I can do SPI in
> _PG_init?
pl/pgsql function are already getting prepared on the first call of the
function for a given backend connection.. If you're using EXECUTE in
pl/gpsql then your problem might be planning time. Moving that to C
isn't going to change things as much as you might hope if you still have
to plan the query every time you call it..
That's not really relevant.. Is it called alot from the same
> The function gets called a lot, but not in the same transaction. It is only
> called once per transaction.
backend/database connection? If so, and if you're using regular SELECT
statements and the like (not EXECUTE), then they're getting prepared the
first time they're used and that is kept across transactions.
Thanks,
Stephen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkv9TTMACgkQrzgMPqB3kijiNQCfY/wTud+VZ4Z53Lw8cNY/N9ZD
0R4AnA4diz1aptFGYXh3j8N9/k96C7/S
=6oz+
-----END PGP SIGNATURE-----
--
Eliot Gable
"We do not inherit the Earth from our ancestors: we borrow it from our children." ~David Brower
"I decided the words were too conservative for me. We're not borrowing from our children, we're stealing from them--and it's not even considered to be a crime." ~David Brower
"Esse oportet ut vivas, non vivere ut edas." (Thou shouldst eat to live; not live to eat.) ~Marcus Tullius Cicero