Indexes not working, please help.

Started by Ricardo Ryoiti S. Junioralmost 24 years ago5 messagesgeneral
Jump to latest
#1Ricardo Ryoiti S. Junior
suga@netbsd.com.br

Hi there.

The table medidas has the following structure:

Table "medidas"
Column | Type | Modifiers
------------+-----------------------------+-----------------------------------------------------
cod | bigint | not null default
nextval('"medidas_cod_seq"'::text)
cod_ponto | bigint |
data_hora | timestamp without time zone |
valor | smallint |
tipo_ponto | bytea |
unidade | bytea |
Indexes: teste
Primary key: medidas_pkey

I populated it with 8859000 entries using many "100 inserts"
blocks transactions. Inserting data on the table is no problem.
Althought I created the "teste" index ( create index teste on
medidas (cod) ), vacuumed and analyzed the database, pgsql still doesn't
use indexes.

explain select * from medidas where cod = 1231232;
---
NOTICE: QUERY PLAN:

Seq Scan on medidas (cost=0.00..197590.50 rows=1 width=36)
---

I've read all the documentation I found, but I couldn't figure out
what's happening. Setting "enable_seqscan" to false doesn't help either.
This machine I'm working on won't be the production server, but
it's not that slow machine (P3 1GHz, 384MB, ATA 100) and without indexes
working, that select mentioned above takes almost 60 seconds to run...

[]'s
Ricardo.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ricardo Ryoiti S. Junior (#1)
Re: Indexes not working, please help.

Ricardo Ryoiti Sugawara Junior <suga@netbsd.com.br> writes:

cod | bigint | not null default

explain select * from medidas where cod = 1231232;

Try "1231232::bigint".

regards, tom lane

#3Ricardo Ryoiti S. Junior
suga@netbsd.com.br
In reply to: Tom Lane (#2)
Re: Indexes not working, please help.

---
Index Scan using medidas_pkey on medidas (cost=0.00..3.01 rows=1
width=36)
---

Indeed, it got a bit faster... :D

Thanks!

[]'s
Ricardo.

On Fri, 5 Jul 2002, Tom Lane wrote:

Show quoted text

Ricardo Ryoiti Sugawara Junior <suga@netbsd.com.br> writes:

cod | bigint | not null default

explain select * from medidas where cod = 1231232;

Try "1231232::bigint".

regards, tom lane

#4Antonis Antoniou
a.antoniou@albourne.com
In reply to: Ricardo Ryoiti S. Junior (#1)
Re: Indexes not working, please help.

Ricardo Ryoiti Sugawara Junior wrote:

Hi there.

The table medidas has the following structure:

Table "medidas"
Column | Type | Modifiers
------------+-----------------------------+-----------------------------------------------------
cod | bigint | not null default
nextval('"medidas_cod_seq"'::text)
cod_ponto | bigint |
data_hora | timestamp without time zone |
valor | smallint |
tipo_ponto | bytea |
unidade | bytea |
Indexes: teste
Primary key: medidas_pkey

I populated it with 8859000 entries using many "100 inserts"
blocks transactions. Inserting data on the table is no problem.
Althought I created the "teste" index ( create index teste on
medidas (cod) ), vacuumed and analyzed the database, pgsql still doesn't
use indexes.

explain select * from medidas where cod = 1231232;
---
NOTICE: QUERY PLAN:

Seq Scan on medidas (cost=0.00..197590.50 rows=1 width=36)
---

I've read all the documentation I found, but I couldn't figure out
what's happening. Setting "enable_seqscan" to false doesn't help either.
This machine I'm working on won't be the production server, but
it's not that slow machine (P3 1GHz, 384MB, ATA 100) and without indexes
working, that select mentioned above takes almost 60 seconds to run...

Hi,
Is your index on the attribute cod? If not then try this:
CREATE INDEX teste ON medidas (cod);

Thanks
Antonis

#5Ricardo Ryoiti S. Junior
suga@netbsd.com.br
In reply to: Antonis Antoniou (#4)
Re: Indexes not working, please help.

Antonis,

That was not the case, it appears that PostgreSQL have problems
matching the type on the table and on the queries. For instance, cod is a
bigserial primary key, so it does has a index but when you query it
without specifying ::bigint after the value, I don't know why, PostgreSQL
won't use it's indexes.

With the "serial" type it works perfectly.

Thanks anyway,

Ricardo.

On Fri, 5 Jul 2002, Antonis Antoniou wrote:

Show quoted text

Hi,
Is your index on the attribute cod? If not then try this:
CREATE INDEX teste ON medidas (cod);

Thanks
Antonis