
> Hmm,Index scan is chosen to select all rows.
> AFAIK,sequential scan + sort is much faster than index scan in
> most cases.
> 
> 	cost of index scan < cost of sequential scan + cost of sort
> 
This is usually true. It might need resources though that are not available,
e.g. 8 GB sort space. It also depends on whether the application is
interested in
first row (interactive), or all row performance (batch). Other DB's can
switch modes 
to decide on the wanted behavior. So I think there is no yes/no decision on
this.

Andreas

Tue, 24 Aug 1999 11:48:05 +0200
Zeugswetter Andreas IZ5 <Andreas.Zeugswetter@telecom.at>
AW: [HACKERS] Caution: tonight's commits force initdb
> -----Original Message-----
> From: owner-pgsql-hackers@postgreSQL.org
> [mailto:owner-pgsql-hackers@postgreSQL.org]On Behalf Of Zeugswetter
> Andreas IZ5
> Sent: Tuesday, August 24, 1999 6:48 PM
> To: pgsql-hackers
> Subject: AW: [HACKERS] Caution: tonight's commits force initdb
> 
> 
> 
> > Hmm,Index scan is chosen to select all rows.
> > AFAIK,sequential scan + sort is much faster than index scan in
> > most cases.
> > 
> > 	cost of index scan < cost of sequential scan + cost of sort
> > 
> This is usually true. It might need resources though that are not 
> available,

Without taking SORT into account

	[From my example]

	cost of sequential scan = 1716.32 and
	cost of index scan = 2284.55

	cost of sequential scan > cost of index scan * 0.7

It's unbelievable for me.

> e.g. 8 GB sort space. It also depends on whether the application is
> interested in
> first row (interactive), or all row performance (batch). Other DB's can
> switch modes 
> to decide on the wanted behavior. So I think there is no yes/no 
> decision on
> this.
>

We could use LIMIT clause to get first rows now and optimizer
should take LIMIT/OFFSET into account(TODO item).

Regards.

Hiroshi Inoue
Inoue@tpf.co.jp
 


Tue, 24 Aug 1999 19:39:03 +0900
"Hiroshi Inoue" <Inoue@tpf.co.jp>
RE: [HACKERS] Caution: tonight's commits force initdb
Zeugswetter Andreas IZ5 wrote:
> 
> > Hmm,Index scan is chosen to select all rows.
> > AFAIK,sequential scan + sort is much faster than index scan in
> > most cases.
> >
> >       cost of index scan < cost of sequential scan + cost of sort
> >
> This is usually true. It might need resources though that are not available,
> e.g. 8 GB sort space. It also depends on whether the application is
> interested in
> first row (interactive), or all row performance (batch). Other DB's can
> switch modes
> to decide on the wanted behavior. So I think there is no yes/no decision on
> this.

I feel the decision should be based on all resources required including
CPU, Memory, and I/O by both the server and all clients. In my experience the
index scan *always* comes out on top on average for small, medium and large
result sets with single row fetch. Now if only we can get postgres to support 
single row fetch without having to use transactions and cursors... then I 
believe that postgres could give Informix and Oracle a serious run for 
their money.

--------
Regards
Theo

Tue, 24 Aug 1999 17:30:22 +0200
Theo Kramer <theo@flame.co.za>
Re: AW: [HACKERS] Caution: tonight's commits force initdb