using indexes

Started by Sferacarta Softwareabout 27 years ago7 messages
#1Sferacarta Software
sferac@bo.nettuno.it

Hello all,

I have a table SP with a primary key SNO,
I'm trying if v6.4beta2 uses indexes
but seems it uses indexes only with '=' operator:

prova=> explain select * from sp where sno = 'S1';
NOTICE: QUERY PLAN:
Index Scan using sp_pkey on sp (cost=0.00 size=0 width=28)
EXPLAIN

prova=> explain select * from sp where sno = 'S1' or sno = 'S2';
NOTICE: QUERY PLAN:
Seq Scan on sp (cost=0.00 size=0 width=28)
EXPLAIN

prova=> explain select * from sp where sno <> 'S1';
NOTICE: QUERY PLAN:
Seq Scan on sp (cost=0.00 size=0 width=28)
EXPLAIN

prova=> explain select * from sp where sno > 'S1';
NOTICE: QUERY PLAN:
Seq Scan on sp (cost=0.00 size=0 width=28)
EXPLAIN
prova=> explain select * from sp where sno < 'S1';
NOTICE: QUERY PLAN:
Seq Scan on sp (cost=0.00 size=0 width=28)
EXPLAIN

Jose'

#2Thomas G. Lockhart
lockhart@alumni.caltech.edu
In reply to: Sferacarta Software (#1)
Re: [HACKERS] using indexes

Sferacarta Software wrote:

Hello all,

I have a table SP with a primary key SNO,
I'm trying if v6.4beta2 uses indexes
but seems it uses indexes only with '=' operator:

regression=> explain select unique1 from onek where unique1 < 3;
NOTICE: QUERY PLAN:

Index Scan using onek_unique1 on onek (cost=28.67 size=334 width=4)

prova=> explain select * from sp where sno = 'S1';
NOTICE: QUERY PLAN:
Index Scan using sp_pkey on sp (cost=0.00 size=0 width=28)
EXPLAIN

Looks like maybe you need to vacuum to get statistics for the optimizer?

- Tom

#3Sferacarta Software
sferac@bo.nettuno.it
In reply to: Thomas G. Lockhart (#2)
Re[2]: [HACKERS] using indexes

Hi Tom,

TGL> Jose' wrote:

Hello all,

I have a table SP with a primary key SNO,
I'm trying if v6.4beta2 uses indexes
but seems it uses indexes only with '=' operator:

regression=>> explain select unique1 from onek where unique1 < 3;
TGL> NOTICE: QUERY PLAN:

TGL> Index Scan using onek_unique1 on onek (cost=28.67 size=334 width=4)

prova=> explain select * from sp where sno = 'S1';
NOTICE: QUERY PLAN:
Index Scan using sp_pkey on sp (cost=0.00 size=0 width=28)
EXPLAIN

TGL> Looks like maybe you need to vacuum to get statistics for the optimizer?

TGL> - Tom

After vacuum the behavior is the same:

prova=> create table onek(unique1 int4 primary key);
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index onek_pkey
for table onek
CREATE
prova=> insert into onek values (1);
INSERT 152858 1
prova=> insert into onek values (10);
INSERT 152859 1
prova=> explain select unique1 from onek where unique1 < 3;
NOTICE: QUERY PLAN:

Seq Scan on onek (cost=0.00 size=0 width=4)

EXPLAIN
prova=> vacuum;
VACUUM
prova=> explain select unique1 from onek where unique1 < 3;
NOTICE: QUERY PLAN:

Seq Scan on onek (cost=1.07 size=1 width=4)

EXPLAIN

PS:
What about:
select unique1 from onek where unique1 = 3 OR unique1 = 1;
^^
does it works on v6.4 ?
Jose'

#4Bruce Momjian
maillist@candle.pha.pa.us
In reply to: Sferacarta Software (#3)
Re: Re[2]: [HACKERS] using indexes

PS:
What about:
select unique1 from onek where unique1 = 3 OR unique1 = 1;
^^
does it works on v6.4 ?

It should.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#5Jose' Soares
jose@sferacarta.com
In reply to: Bruce Momjian (#4)
Re: [HACKERS] using indexes

Bruce Momjian wrote:

PS:
What about:
select unique1 from onek where unique1 = 3 OR unique1 = 1;
^^
does it works on v6.4 ?

It should.

This is a great new.
This thing is absolutely neccessary to have better performances using
ODBC and ACCESS.

Thank you
Jose'

#6Marc G. Fournier
scrappy@hub.org
In reply to: Sferacarta Software (#3)
Re: Re[2]: [HACKERS] using indexes

On Mon, 19 Oct 1998, Sferacarta Software wrote:

Hi Tom,

TGL> Jose' wrote:

Hello all,

I have a table SP with a primary key SNO,
I'm trying if v6.4beta2 uses indexes
but seems it uses indexes only with '=' operator:

regression=>> explain select unique1 from onek where unique1 < 3;
TGL> NOTICE: QUERY PLAN:

TGL> Index Scan using onek_unique1 on onek (cost=28.67 size=334 width=4)

prova=> explain select * from sp where sno = 'S1';
NOTICE: QUERY PLAN:
Index Scan using sp_pkey on sp (cost=0.00 size=0 width=28)
EXPLAIN

TGL> Looks like maybe you need to vacuum to get statistics for the optimizer?

TGL> - Tom

After vacuum the behavior is the same:

prova=> create table onek(unique1 int4 primary key);
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index onek_pkey
for table onek
CREATE
prova=> insert into onek values (1);
INSERT 152858 1
prova=> insert into onek values (10);
INSERT 152859 1
prova=> explain select unique1 from onek where unique1 < 3;
NOTICE: QUERY PLAN:

Seq Scan on onek (cost=0.00 size=0 width=4)

The table has two records in it...why would it use an index?

Marc G. Fournier scrappy@hub.org
Systems Administrator @ hub.org
scrappy@{postgresql|isc}.org ICQ#7615664

#7Bruce Momjian
maillist@candle.pha.pa.us
In reply to: Jose' Soares (#5)
Re: [HACKERS] using indexes

Bruce Momjian wrote:

PS:
What about:
select unique1 from onek where unique1 = 3 OR unique1 = 1;
^^
does it works on v6.4 ?

It should.

This is a great new.
This thing is absolutely neccessary to have better performances using
ODBC and ACCESS.

Yes. We worked hard on this because it was a much needed feature.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026