并行操作

Ganos支持利用多个CPU提升查询或计算性能,这种特性被称为并行操作。Ganos支持并行执行SQL语句和并行操作UDF。

SQL语句并行执行

Ganos支持利用多个CPU生成并行的查询计划,并将执行任务分配到多个CPU上以提升性能。

因此,在一个多CPU的环境下,对于多个数据库对象的查询会自动地切分为子集并独立地在不同的CPU上运行。

UDF并行操作

通常情况下部分UDF操作都非常耗时。UDF内部并行操作技术可以应用于单个UDF对象的操作过程,通过多个CPU并行计算UDF对象中的子集内容,从而降低整个UDF对象的操作时间。每个子集内容均独立运行,当所有的子集执行完成,整个UDF操作过程同时也结束。

并行度参数

如果支持并行操作的函数未指定并行度或指定并行度为0,则使用GUC(Grand Unified Configuration)参数ganos.parallel.degree的值作为默认的并行度。ganos.parallel.degree参数默认值为1, 表示不支持并行执行。

每个支持并行操作的函数都有一个指定并行度的参数。通过指定一个正整数用于将raster对象的计算任务拆分为并行任务独立执行。

事务一致性

GUC参数ganos.parallel.transaction用于指定并行事务级别,取值如下:

  • transaction_commit(默认值):支持并行事务根据主事务进行提交或回滚。

  • fast_commit:不支持并行事务回滚。

注意事项

并行过程不支持相应的表创建,建议先创建表。