From: | "Marinos Yannikos" <mjy(at)geizhals(dot)at> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org, "Svetlin Manavski" <svetlin(dot)manavski(at)gmail(dot)com> |
Subject: | Re: is parallel union all possible over dblink? |
Date: | 2011-06-29 18:37:18 |
Message-ID: | op.vxuoogblkhmbxg@klump-pc.ghoffice |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Wed, 29 Jun 2011 13:55:58 +0200, Svetlin Manavski
<svetlin(dot)manavski(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Spiegelberg | 2011-06-29 19:14:32 | Re: is parallel union all possible over dblink? |
Previous Message | Svetlin Manavski | 2011-06-29 11:55:58 | is parallel union all possible over dblink? |