Re: help with query speed - Mailing list pgsql-general

From Dann Corbit
Subject Re: help with query speed
Date
Msg-id D90A5A6C612A39408103E6ECDD77B829408CFC@voyager.corporate.connx.com
Whole thread Raw
In response to help with query speed  ("Jason Tesser" <JTesser@nbbc.edu>)
List pgsql-general
> -----Original Message-----
> From: Jason Tesser [mailto:JTesser@nbbc.edu]
> Sent: Thursday, February 12, 2004 11:33 AM
> To: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] help with query speed
>
>
> Hi
>
> > > I have the below query written.  I have removed a lot from the
> select
> > > Statement for simplicity sake.  The query takes way too
> long. I am
> > > moving from an Access backend to a Postgres back with
> Access in the
> > > front. The below query is taking like 14-20 seconds. Is their a
> > > better way I can write the joins.  I would think that Postgres
> > > should be fast than Access.  BTW I am writing these as
> Pass through
> > > queries so it is not a problem with Access.  I have Even ran the
> > > query directly against Postgres.
> > >
> > > SELECT
> > >   tblroster.transcriptlink
> > > FROM
> > >   tblroster
> > >   FULL OUTER JOIN testclass ON (tblroster.classlink =
> > > testclass.classid)
> > >   FULL OUTER JOIN tblqualitypoint ON (tblroster.lettergrade =
> > > tblqualitypoint.letter)
> > > ORDER BY
> > >   tblroster.transcriptlink
> >
> > Is there an index on:
> > tblroster.classlink
> >
> > Is there an index on:
> > testclass.classid
> >
> > Is there an index on:
> > tblroster.lettergrade
> >
> > Is there an index on:
> > tblqualitypoint.letter
> >
> > Is there an index on:
> > tblroster.transcriptlink
>
> I created the indexes and it speed up a little.  Still a
> little slower than Access though.  Which I think should not
> be.

Try this experiment:
Take your MS Access database, and start a big transaction.  Right in the
middle of the transaction, yank the plug on your computer out of the
wall.  Then, take a baseball bat and bash your computer to smithereens.
It won't prove anything, but it will be a fun exercise.
;-)

>The testclass is a view not
> A query so I cannot make an index there.

But you can make an index on the underlying tables.

> What is the best way to index this stuff?

There is no simple answer.

> Should I make one index
> (b-tree)
> And add all fkeys and pkey from that table?

The foreign and primary keys won't make any difference in speed.  They
are for enforcing RI.

> > How many rows are in the tables?

This is important.

pgsql-general by date:

Previous
From: Ericson Smith
Date:
Subject: Looking for Developer with Postgresql experience
Next
From: Richard Huxton
Date:
Subject: Re: help with query speed