[hibernate-dev] Memory consumption

Steve Ebersole steve at hibernate.org
Thu May 17 11:40:57 EDT 2012


Its an index scan, totally trivial (unless their index hashing algos 
are awful as well).


On Thu 17 May 2012 08:49:06 AM CDT, Guillaume Smet wrote:
> On Thu, May 17, 2012 at 3:02 PM, Steve Ebersole<steve at hibernate.org>  wrote:
>> But just because you have 100 values in no way indicates how many rows will
>> be returned.  And I personally know of no optimizers that make such an
>> assumption; its a totally worthless assumption.
>
> That's why I put "simplified" in front of it.
>
> The number of clauses is taken into account to calculate the
> estimation of the number of rows returned and depending on the plan
> chosen to get the results, this might lead to results you don't expect
> and don't want.
>
> See the below example on PostgreSQL (which is far from having the
> worst optimizer/planner of the market):
> sitra=# explain select id from objettouristique where id=4 or id=4 or
> id=4 or id=4 or id=5;
>                                          QUERY PLAN
> ------------------------------------------------------------------------------------------
>   Bitmap Heap Scan on objettouristique  (cost=1.80..2.41 rows=5 width=8)
>     Recheck Cond: ((id = 4) OR (id = 4) OR (id = 4) OR (id = 4) OR (id = 5))
>     ->   BitmapOr  (cost=1.80..1.80 rows=5 width=0)
>           ->   Bitmap Index Scan on objettouristique_pkey
> (cost=0.00..0.36 rows=1 width=0)
>                 Index Cond: (id = 4)
>           ->   Bitmap Index Scan on objettouristique_pkey
> (cost=0.00..0.36 rows=1 width=0)
>                 Index Cond: (id = 4)
>           ->   Bitmap Index Scan on objettouristique_pkey
> (cost=0.00..0.36 rows=1 width=0)
>                 Index Cond: (id = 4)
>           ->   Bitmap Index Scan on objettouristique_pkey
> (cost=0.00..0.36 rows=1 width=0)
>                 Index Cond: (id = 4)
>           ->   Bitmap Index Scan on objettouristique_pkey
> (cost=0.00..0.36 rows=1 width=0)
>                 Index Cond: (id = 5)
>
> It sure looks stupid but the opinion of the PostgreSQL hackers is that
> it's stupid to add several times the same clause. The cost of checking
> all the conditions can be high and is wasted most of the time.
>

--
steve at hibernate.org
http://hibernate.org


More information about the hibernate-dev mailing list