Re: [SQL] problem with the Index

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Jose Antonio Leo <jaleo8(at)storelandia(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: [SQL] problem with the Index
Date: 2002-10-09 17:31:12
Message-ID: 20021009102800.U4728-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers pgsql-performance pgsql-sql

On Wed, 9 Oct 2002, Jose Antonio Leo wrote:

> I have a problem with the index of 1 table.
>
> I hava a table created :
> CREATE TABLE "acucliart" (
> "cod_pto" numeric(8,0) NOT NULL,
> "cod_cli" varchar(9) NOT NULL,
> "mes" numeric(2,0) NOT NULL,
> "ano" numeric(4,0) NOT NULL,
> "int_art" numeric(5,0) NOT NULL,
> "cantidad" numeric(12,2),
> "ven_siv_to" numeric(14,2),
> "ven_civ_to" numeric(14,2),
> "tic_siv_to" numeric(14,2),
> "tic_civ_to" numeric(14,2),
> "visitas" numeric(2,0),
> "ult_vis" date,
> "ven_cos" numeric(12,2),
> "ven_ofe" numeric(12,2),
> "cos_ofe" numeric(12,2),
> CONSTRAINT "acucliart_pkey"
> PRIMARY KEY ("cod_cli")
> );
>
> if i do this select:
> explain select * from acucliart where cod_cli=10000;
> postgres use the index
> NOTICE: QUERY PLAN:
> Index Scan using cod_cli_ukey on acucliart (cost=0.00..4.82 rows=1
> width=478)
>
> and this select
> explain select * from acucliart where cod_cli>10000;
> Postgres don't use the index:
> NOTICE: QUERY PLAN:
> Seq Scan on acucliart (cost=0.00..22.50 rows=333 width=478)
>
> why?

Well, how many rows are in the table? In the first case it estimates 1
row will be returned, in the second 333. Index scans are not always faster
than sequential scans as the percentage of the table to scan becomes
larger. If you haven't analyzed recently, you probably should do so and
if you want to compare, set enable_seqscan=off and try an explain there
and see what it gives you.

Also, why are you comparing a varchar(9) column with an integer?

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ericson Smith 2002-10-09 17:35:31 MD5 Function?
Previous Message Jose Antonio Leo 2002-10-09 16:56:41 problem with the Index

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-10-09 17:37:24 GRANT on functions/languages
Previous Message Rod Taylor 2002-10-09 17:11:48 Re: [GENERAL] Point in Time Recovery WAS: Hot Backup

Browse pgsql-performance by date

  From Date Subject
Next Message Manfred Koizar 2002-10-09 18:09:03 Re: [pgsql-performance] Large databases, performance
Previous Message Jose Antonio Leo 2002-10-09 16:56:41 problem with the Index

Browse pgsql-sql by date

  From Date Subject
Next Message Manfred Koizar 2002-10-09 18:09:03 Re: [pgsql-performance] Large databases, performance
Previous Message Stephan Szabo 2002-10-09 17:26:31 Re: SELECT statement never completes.