Re: Flattening a kind of 'dynamic' table - Mailing list pgsql-performance

From Alexandre Leclerc
Subject Re: Flattening a kind of 'dynamic' table
Date
Msg-id 1dc7f0e305020412085bef5611@mail.gmail.com
Whole thread Raw
In response to Re: Flattening a kind of 'dynamic' table  ("Merlin Moncure" <merlin.moncure@rcsonline.com>)
List pgsql-performance
On Fri, 4 Feb 2005 12:48:43 -0500, Merlin Moncure
<merlin.moncure@rcsonline.com> wrote:
> > Alexandre Leclerc wrote:
> > Sorry for jumping in on this thread so late -- I haven't been able to
> > select * from crosstab(
> >    'select product_id, department_id, req_time
> >     from product_department_time order by 1',
> >    'select ''A'' union all select ''C'' union all select ''D'''
> > ) as (product_id int, a int, c int, d int);
>
> I forgot you could do this...This would certainly be easier than parsing
> array values returned from array_accum.  It will probably be faster as
> well...but with the array approach the query would not have to be
> modified each time a new department was added.  That said, a crosstab
> based query could be built easily enough from a department query on the
> client and then you have the best of both worlds.

Hello Merlin,

Well, I'm glad because with all this i've learn a lot of new things.

Finally, the crosstab solution is very fast and is simple for me to
use. I get my super-bug-jumbo-dbkiller-query run in about 210ms
(seeking many tables and so). I had a score of 2480ms before. (This is
a much more complex query; the cross table thing had to be included in
this one.) This is much better! :)

In all, thanks for your help. Regards.

--
Alexandre Leclerc

pgsql-performance by date:

Previous
From: "Merlin Moncure"
Date:
Subject: Re: Flattening a kind of 'dynamic' table
Next
From: Marinos Yannikos
Date:
Subject: Re: GiST indexes and concurrency (tsearch2)