PARALLELIZABLE

使用 PARALLELIZABLE 修饰符,表示外部例程可以在并行数据查询(PDQ)的上下文中并行执行。

缺省情况下,外部例程是不能并行执行的;即,它要按顺序执行。

如果 UDR 具有复杂或智能大对象数据类型作为参数或返回值,则不能使用 PARALLELIZABLE 修饰符。

如果对一个不能并行的外部例程指定 PARALLELIZABLE 修饰符,数据库服务器会返回一个运行时错误。

只调用 PDQ 线程安全 DataBlade API 函数的 C 语言 UDR 是可并行的。这些类别的 DataBlade API 函数是 PDQ 线程安全的:
  • 数据处理

    这个类别的一个例外是集合操作函数(mi_collection_*)不是 PDQ 线程安全的。

  • 会话、线程和事务管理
  • 函数执行
  • 内存管理
  • 异常处理
  • 回叫
  • 其它

每种类别 DataBlade API 函数的详细信息,请参阅 GBase 8s DataBlade API 函数参考

如果 C 语言 UDR 调用不包含在这些类别之一中的函数,那么它就不是 PDQ 线程安全的,因此不是可并行的。

要并行 Java™ 语言 UDR 调用,数据库服务器必须具有多个 JVP 实例。用 Java 语言编写的打开一个 JDBC 连接的 UDR 不是可并行的。