hello ...

no, we have not checked memory consumption.
there is still some stuff left to optimize away - it seems we are going close 
to O(n^2) somewhere.
"equal" is called really often in our sample case as well:

ach sample counts as 0.01 seconds.
 %   cumulative   self              self     total          
time   seconds   seconds    calls   s/call   s/call  name   
18.87      0.80     0.80     4812     0.00     0.00  make_canonical_pathkey
15.33      1.45     0.65     4811     0.00     0.00 
get_eclass_for_sort_expr
14.15      2.05     0.60  8342410     0.00     0.00  equal
 6.13      2.31     0.26   229172     0.00     0.00  SearchCatCache
 3.66      2.47     0.16  5788835     0.00     0.00  _equalList
 3.07      2.60     0.13  1450043     0.00     0.00 
hash_search_with_hash_value
 2.36      2.70     0.10  2272545     0.00     0.00  AllocSetAlloc
 2.12      2.79     0.09   811460     0.00     0.00  hash_any
 1.89      2.87     0.08  3014983     0.00     0.00  list_head
 1.89      2.95     0.08   574526     0.00     0.00  _bt_compare
 1.77      3.02     0.08 11577670     0.00     0.00  list_head
 1.42      3.08     0.06     1136     0.00     0.00  tzload
 0.94      3.12     0.04  2992373     0.00     0.00  AllocSetFreeIndex


look at the number of calls ...
"equal" is scary ...

make_canonical_pathkey is fixed it seems.
get_eclass_for_sort_expr seems a little more complex to fix.

great you like it ...

        regards,

                hans



On Sep 8, 2010, at 3:54 PM, Robert Haas wrote:

> On Tue, Sep 7, 2010 at 2:14 PM, Boszormenyi Zoltan <z...@cybertec.at> wrote:
>> Hi,
>> 
>> Robert Haas írta:
>>> 2010/9/3 PostgreSQL - Hans-Jürgen Schönig <postg...@cybertec.at>:
>>> 
>>>> i tried this one with 5000 unindexed tables (just one col):
>>>> 
>>>> test=# \timing
>>>> Timing is on.
>>>> test=# prepare x(int4) AS select * from t_data order by id desc;
>>>> PREPARE
>>>> Time: 361.552 ms
>>>> 
>>>> you will see similar or higher runtimes in case of 500 partitions and a 
>>>> handful of indexes.
>>>> 
>>> 
>>> I'd like to see (1) a script to reproduce your test environment (as
>>> Stephen also requested) and (2) gprof or oprofile results.
>>> 
>> 
>> attached are the test scripts, create_tables.sql and childtables.sql.
>> The following query takes 4.7 seconds according to psql with \timing on:
>> EXPLAIN SELECT * FROM qdrs
>> WHERE streamstart BETWEEN '2010-04-06' AND '2010-06-25'
>> ORDER BY streamhash;
> 
> Neat.  Have you checked what effect this has on memory consumption?
> 
> Also, don't forget to add it to
> https://commitfest.postgresql.org/action/commitfest_view/open
> 
> -- 
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise Postgres Company
> 
> -- 
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
> 


--
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt
Web: http://www.postgresql-support.de


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

Reply via email to