我已经看到我的查询从未由PostgreSQL服务器并行执行。如果我通过pgAdmin,Heidi等执行相同的查询,则由指定数量的并行工作进程执行。 但是似乎没有jdbc参数来启用或禁用此行为。 有人知道解决方案吗?
作为示例,我使用3个表:file,gps和cell(info)。我使用的查询强制Postgres使用顺序扫描-其中之一是并行的。
select lon,lat,level
from t_qd_state_cell tc
join t_qd_state_gps tp on tp.id_state=tc.id_state
join t_qb_file tf on tf.id = tc.id_file
where lon is not null
and level is not null
and tf.id>6000000
可以在此处找到相应的查询计划:
如果从pgAdmin开始,则可以使用服务器状态或htop监视并行执行。但是从Java程序来看,只有一个过程。
答案 0 :(得分:0)
这可能是由于PostgreSQL JDBC驱动程序的preferQueryMode
参数引起的。默认值为extended
,它表现出这种行为。值simple
和extendedForPrepared
正常工作。