Re: Performance analysis of plpgsql code

From: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
To: Michael Fuhr <mike(at)fuhr(dot)org>
Cc: pgsql-performance(at)postgresql(dot)org, Michael Glaesemann <grzm(at)myrealbox(dot)com>
Subject: Re: Performance analysis of plpgsql code
Date: 2005-06-28 03:03:06
Message-ID: 1119927786l.11411l.3l@mofo
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches pgsql-performance


On 06/27/2005 08:34:19 PM, Michael Fuhr wrote:
> On Tue, Jun 28, 2005 at 01:54:08AM +0000, Karl O. Pinc wrote:
> > On 06/27/2005 06:33:03 PM, Michael Fuhr wrote:
> >
> > >See timeofday().
> >
> > That only gives you the time at the start of the transaction,
> > so you get no indication of how long anything in the
> > transaction takes.
>
> Did you read the documentation or try it? Perhaps you're thinking
> of now(), current_timestamp, and friends, which don't advance during
> a transaction; but as the documentation states, "timeofday() returns
> the wall-clock time and does advance during transactions."

Very sorry. I did not read through the complete documentation.

> I just ran tests on versions of PostgreSQL going back to 7.2.8 and
> in all of them timeofday() advanced during a transaction.

For all your work a documentation patch is appended that
I think is easier to read and might avoid this problem
in the future. If you don't read all the way through the
current cvs version then you might think, as I did,
that timeofday() is a CURRENT_TIMESTAMP related function.

Sorry, but 3 lines wrap in the patch
in my email client. :(

Karl <kop(at)meme(dot)com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein

--- func.sgml 2005-06-26 17:05:35.000000000 -0500
+++ func.sgml.new 2005-06-27 21:51:05.301097896 -0500
@@ -5787,15 +5787,6 @@
</para>

<para>
- There is also the function <function>timeofday()</function>, which
for historical
- reasons returns a <type>text</type> string rather than a
<type>timestamp</type> value:
-<screen>
-SELECT timeofday();
-<lineannotation>Result: </lineannotation><computeroutput>Sat Feb 17
19:07:32.000126 2001 EST</computeroutput>
-</screen>
- </para>
-
- <para>
It is important to know that
<function>CURRENT_TIMESTAMP</function> and related functions
return
the start time of the current transaction; their values do not
@@ -5803,8 +5794,7 @@
the intent is to allow a single transaction to have a consistent
notion of the <quote>current</quote> time, so that multiple
modifications within the same transaction bear the same
- time stamp. <function>timeofday()</function>
- returns the wall-clock time and does advance during transactions.
+ time stamp.
</para>

<note>
@@ -5815,6 +5805,18 @@
</note>

<para>
+ There is also the function <function>timeofday()</function> which
+ returns the wall-clock time and advances during transactions. For
+ historical reasons <function>timeofday()</function> returns a
+ <type>text</type> string rather than a <type>timestamp</type>
+ value:
+<screen>
+SELECT timeofday();
+<lineannotation>Result: </lineannotation><computeroutput>Sat Feb 17
19:07:32.000126 2001 EST</computeroutput>
+</screen>
+ </para>
+
+ <para>
All the date/time data types also accept the special literal value
<literal>now</literal> to specify the current date and time.
Thus,
the following three all return the same result:

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Luke Lonergan 2005-06-28 04:44:59 Re: COPY FROM performance improvements
Previous Message Jim C. Nasby 2005-06-28 02:58:22 Re: Problem with dblink regression test

Browse pgsql-performance by date

  From Date Subject
Next Message Christopher Kings-Lynne 2005-06-28 03:04:48 Re: How can I speed up this function?
Previous Message Michael Fuhr 2005-06-28 02:49:18 Re: Performance analysis of plpgsql code