Search Postgresql Archives

Re: Index on immutable function call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alban Hertroys wrote:
>> Hi,
>> 
>> It does!
>> 
>> With your index alone:
>> 
>> ---------------------------
>> Bitmap Heap Scan on indexed_table  (cost=815.17..10106.08 rows=33333
>> width=12) (actual time=7.796..236.722 rows=50116 loops=1)  Recheck
>> Cond: (data1 > this_is_a_long_transformation(data2))
>>  ->  Bitmap Index Scan on transform_index  (cost=0.00..806.84
>> rows=33333 width=0) (actual time=7.665..7.665 rows=50116 loops=1)
>> Total runtime: 459.380 ms ---------------------------
>> 
>> That works just fine, but is there maybe a way of creating a slighly
>> more "generic" index? If I change the ">" with a "<" in the query,
>> index cannot of course be used. According to documentation, answer
>> seems to be "no"...
> 
> I have to say I'm a bit surprised this works, as the database still
> needs to check all these rows for existence. Apparently the index is
> sufficiently selective with your database tuning parameters.  
> 
> That said, if this works then a combined index on (data1,
> this_is_a_long_transformation(data2)) will probably also work and
> give you the flexibility you need.  

I have tried with a combined index:

create index long_transformation_index on indexed_table (data1,
this_is_a_long_transformation(data2));

Unfortunately, it does not work:

-------------------------------
Seq Scan on indexed_table  (cost=0.00..26791.00 rows=33333 width=12)
(actual time=0.327..5805.199 rows=49959 loops=1)
  Filter: (data1 > this_is_a_long_transformation(data2))
Total runtime: 6340.772 ms
-------------------------------


-----------------------------------------------------------------------
Philippe Lang                   Web    : www.attiksystem.ch
Attik System                    Email  : philippe.lang@xxxxxxxxxxxxxx
rte de la Fonderie 2            Phone  : +41 26 422 13 75
1700 Fribourg                   Mobile : +41 79 351 49 94
Switzerland                     Fax    : +41 26 422 13 76






-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux