Re: Activate Index - Mailing list pgsql-general

From scott.marlowe
Subject Re: Activate Index
Date
Msg-id Pine.LNX.4.33.0309040853260.27003-100000@css120.ihs.com
Whole thread Raw
In response to Re: Activate Index  ("Edwin Quijada" <listas_quijada@hotmail.com>)
List pgsql-general
What query are you running?

If you run

select * from indexed_table

you'll get a seq scan because you're hitting every row.

If you're doing

select * from indexed_table where indexed_field=1

you should get an index scan.

Anything in between the query planner will decide.  Unlike some older
databases that used a rules based planner, postgresql uses a cost based
planner.  I.e. it figures out which "costs" more, a seq scan or an index
scan, and chooses accordingly.

In order to do this properly, it needs to know how your data is laid out.
Have you run analyze on your database?

If the query planner still makes the wrong you can force things with "set
enable_seqscan = off" temporarily to see if postgresql really is making
the best choice.  Then run your query with "explain analyze " at the front
and postgresql will run the query, report back how it ran it, how much it
THOUGHT it would cost, and how long it really took.

Then, you can tune your database by messing about with random_page_cost,
cpu*cost (3 different vars) effective_cache_size, shared_buffers, and
sort_mem.

Postgresql is like a large complex piece of machinery that runs great once
it's been setup, but suffers from pretty mediocre performance in it's
default installation format due to the need to start on some pretty
ancient operating systems / hardware setups.  Lately, some of those
defaults have been increased a bit, but they're still small for a
workgroup or enterprise class database.


On Thu, 4 Sep 2003, Edwin Quijada wrote:

>
> Well , My table has 380000 records!!!
>
>
> >From: "Mattias Kregert" <mattias@kregert.se>
> >To: "Edwin Quijada" <listas_quijada@hotmail.com>
> >Subject: Re: [GENERAL] Activate Index
> >Date: Thu, 4 Sep 2003 15:58:33 +0200
> >
> >Hello Edwin,
> >
> >The index will be used automatically when you have enough rows in the
> >table. For tables with a small number of rows, a seq scan will be made
> >because it is actually faster than using the index with a small number of
> >rows.
> >
> >You also have to remember to run VACUUM from time to time, so that the
> >statistics are updated so the planner can see how many rows are in the
> >table.
> >
> >
> >/Mattias
> >
> >----- Original Message -----
> >From: "Edwin Quijada" <listas_quijada@hotmail.com>
> >To: <pgsql-general@postgresql.org>
> >Sent: Thursday, September 04, 2003 4:02 PM
> >Subject: [GENERAL] Activate Index
> >
> >
> > > Hi!!
> > > This is my first post to the list. I have a problem.
> > > I have a table with a two index , int4, but when I do a search using the
> > > field indexed but when I applied an explain to the query it says Seq
> >Scan ,
> > > I mean , that it doesnot use the index.
> > > I cant use the cast field::int4 because I use delphi and delphi does not
> > > support this.
> > > I know there is a command to activate index aand always postgrres will
> >be
> > > the index
> > > Which are this command???
> > > Anyone knows?
> > >
> > >
> > > *-------------------------------------------------------*
> > > *-Edwin Quijada
> > > *-Developer DataBase
> > > *-JQ Microsistemas
> > > *-809-747-2787
> > > * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de
> >lo
> > > comun"
> > > *-------------------------------------------------------*
> > >
> > > _________________________________________________________________
> > > ¿Estás buscando un auto nuevo?  http://www.yupimsn.com/autos/
> > >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 5: Have you checked our extensive FAQ?
> > >
> > >                http://www.postgresql.org/docs/faqs/FAQ.html
> > >
>
> _________________________________________________________________
> ¿Estás buscando un auto nuevo?  http://www.yupimsn.com/autos/
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


pgsql-general by date:

Previous
From: Josué Maldonado
Date:
Subject: Re: TCL trigger doesn't work after deleting a column
Next
From: Alvaro Herrera Munoz
Date:
Subject: Re: TCL trigger doesn't work after deleting a column