Re: Wired behavor with LIMIT - Mailing list pgsql-general

From Richard Huxton
Subject Re: Wired behavor with LIMIT
Date
Msg-id 4656CEF7.4070506@archonet.com
Whole thread Raw
In response to Wired behavor with LIMIT  (Thomas Munz <thomas@ecommerce.com>)
Responses Re: Wired behavor with LIMIT
List pgsql-general
Thomas Munz wrote:
> Hello List!
>
> I tried today to optmize in our companies internal Application the
> querys. I come to a point where I tried, if querys with LIMIT are slower
> then querys without limit
>
> I tried following query in 8.2.4. Keep in mind that the table hs_company
> only contains 10 rows.

Probably too small to provide useful measurements.

> ghcp=#  explain analyze select * from hs_company; explain analyze select
> * from hs_company limit 10;

> Total runtime: 0.102 ms
> Total runtime: 0.138 ms

1. I'm not sure the timings are accurate for sub-millisecond values
2. You've got to parse the LIMIT clause, and then execute it (even if it
does nothing useful)

> I runned this query about 100 times and always resulted, that this query
> without limit is about 40 ms faster

That's 0.4ms

> Now I putted the same query in the file 'sql.sql' and runned it 100
> times with:
> psql test testuser -f sql.sql

> Total runtime: 0.200 ms
> Total runtime: 0.153 ms

> The querys are equal but has different speeds. Can me someone explain
> why that is?

Same as above - you've got to parse & execute the limit clause. There's
no way for the planner to know that the table has exactly 10 rows in it
at the time it executes.

--
   Richard Huxton
   Archonet Ltd

pgsql-general by date:

Previous
From: Tom Allison
Date:
Subject: Re: bytea & perl
Next
From: "John D. Burger"
Date:
Subject: Re: index vs. seq scan choice?