postgresql10 jdbc并行查询

时间:2018-09-06 05:08:42

标签: postgresql jdbc postgresql-10

我已经看到我的查询从未由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

可以在此处找到相应的查询计划:

query plan image

如果从pgAdmin开始,则可以使用服务器状态或htop监视并行执行。但是从Java程序来看,只有一个过程。

1 个答案:

答案 0 :(得分:0)

这可能是由于PostgreSQL JDBC驱动程序的preferQueryMode参数引起的。默认值为extended,它表现出这种行为。值simpleextendedForPrepared正常工作。