Re: is parallel union all possible over dblink? - Mailing list pgsql-performance

From Marinos Yannikos
Subject Re: is parallel union all possible over dblink?
Date
Msg-id op.vxuoogblkhmbxg@klump-pc.ghoffice
Whole thread Raw
In response to is parallel union all possible over dblink?  (Svetlin Manavski <svetlin.manavski@gmail.com>)
Responses Re: is parallel union all possible over dblink?  (Greg Spiegelberg <gspiegelberg@gmail.com>)
List pgsql-performance
On Wed, 29 Jun 2011 13:55:58 +0200, Svetlin Manavski
<svetlin.manavski@gmail.com> wrote:

> Question: Is there a way to get the same result from within a PL/pgSQL
> function but running all the sub-queries in parallel? In case it is not
> directly available, which one would be the simplest way to implement it
> in
> my application? (I am very keen to avoid the obvious solution of an
> additional multi-threaded layer which would do it out of the RDBMS)

Have you tried dblink_send_query() + dblink_get_results() yet?

http://www.postgresql.org/docs/current/static/contrib-dblink-send-query.html

You'd have to do something like this to your queries [untested]:

select dblink_send_query('remote1','select * from
appqosfe.F_total_utilization(1306918800000000000::INT8, NULL,
60000000000::INT8, NULL)');
(select * from appqosfe.F_total_utilization(1306918800000000000::INT8,
NULL,
60000000000::INT8, NULL))
UNION ALL
(SELECT * from dblink_get_result('remote1') as T1(detectroid numeric,
timegroup numeric,
numbytes numeric, numpackets numeric))
order by timegroup asc;

i.e. start your remote query/-ies asynchronously, then collect the results
in the UNION query. At least in theory it should work...

Regards,
  Marinos


pgsql-performance by date:

Previous
From: Svetlin Manavski
Date:
Subject: is parallel union all possible over dblink?
Next
From: Greg Spiegelberg
Date:
Subject: Re: is parallel union all possible over dblink?