tuning large selects - Mailing list pgsql-sql

From Werner Reisberger
Subject tuning large selects
Date
Msg-id 19991029213603.B830@tribe.free.de
Whole thread Raw
Responses Re: [SQL] tuning large selects  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
I am running a db (v. 6.4.2) accessible via DBI/Pg from the internet. 
Recently I observed several running postmaster processes consuming lots of CPU,
resulting in a high load of the machine. There was nobody connected to
the db from the net. Later I saw that my db partition was filled to 100 %
by a huge file (pg_psort.189xx). My db partition is approx. 950 MB. The
db consumes 15 MB and the file consumed the rest. 

I guess the pg_psort file grew to this dimension because the select
possibilities I am offering via the CGI are not well designed. Maybe
someone could give me some advice how to make it more efficient. 

The select in question accesses only one table (notcat) with approx.
6000 rows and 15 columns. The CGI allows to choose how many columns will
be returned as a result and what columns are used to constrain the search.
There are 8 columns which can be used to constrain the search. The values
of each such column are Or-ed together in the where clause. The columns
itself are AND-ed.

Example:

select * from notcat where (col1 ~* 'val1' OR col1 ~* 'val2' ....) AND        (col2 ~* 'val1' OR col2  ~* 'val2' ....)
AND(col3 ~* 'val1' ...
 


To make things worse there could be several dozens values in each column
used in the where clause.

--Werner


pgsql-sql by date:

Previous
From: Oleg Bartunov
Date:
Subject: random query
Next
From: Andrew Patterson
Date:
Subject: Combining Two Tables