Re: performance question - Mailing list pgsql-general

From Alfred Perlstein
Subject Re: performance question
Date
Msg-id 20000713133537.S25571@fw.wintelcom.net
Whole thread Raw
In response to Re: performance question  (ernie cline <ernie.cline@ipgdirect.com>)
List pgsql-general
* ernie cline <ernie.cline@ipgdirect.com> [000713 11:57] wrote:
> Tom Lane wrote:
> >
> > ernie cline <ernie.cline@ipgdirect.com> writes:
> > > Quick question.  I am using postgres 7.0.  When running a select query,
> > > does postgres lock the row (or table) while doing a select?  Only on an
> > > insert/update/delete, right?
> >
> > SELECTs certainly don't block each other (except the SELECT FOR UPDATE
> > variety).
>
> I kind of didn't think so, but I just wanted to make sure I wasn't
> insane. ;)
>
>
> > > We are experiencing some performance
> > > problems when running 2 programs that access the database at once (only
> > > doing querys, and not even complex ones).
> >
> > Need more detail ...
>
> What else do you need to know?  Postgres 7.0 compiled with default
> options, running on a VA Linux Fullon box, kernel 2.2.13, running VA
> Linux/Redhat 6.1.  Box is a single processor pentium 3 500mhz, 128megs
> of ram, apache 1.3.9.  Using Perl DBI interface to access postgres.  A
> very small html page is built (about 4.5k), and it takes about 2.6
> seconds to execute and build the html.  Running 2 of the pages at once,
> it takes about 5 seconds for them to complete.  Not total, but 5 for
> each one.  This is using just unix 'time' command, and moving my mouse
> to another rxvt window and hitting enter after first hitting it in
> another window ;).
>
> Is using Perl DBI slow?  Would writing the cgi in C speed things up?
> (Please no holy wars for perl vs. C performance! <G>)
> Any help would be appreciated ...

Before going to the extent of re-implementing your code I would just
print out the "time taken" for various things in your cgi like so:

print "\n<!--\nstarted $time\n-->\n";
# do query
print "\n<!--\nquery done $time\n-->\n";
# do something
print "\n<!--\nsomething done $time\n-->\n";
# do output
print "\n<!--\noutput done $time\n-->\n";

Then you can figure out where the problem is.

--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: performance question
Next
From: Tom Lane
Date:
Subject: Re: location of change list?