---
title: 单 SQC + UDF 函数 hang 住-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于单 SQC + UDF 函数 hang 住相关的常见问题和使用技巧，帮助您快速解决单 SQC + UDF 函数 hang 住的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 单 SQC + UDF 函数 hang 住

更新时间：2026-05-19 08:21

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题现象

执行计划包含 PX MergeSort + DOP=1 + UDF，且 hang 住，而且在对应的未修复版本 该 BUG 复现的充分条件为：

1. SQL 中包含嵌套语句，至少包含以下三种情形的一种。

   1）SQL 中包含 UDF。 2）SQL 涉及表存在外键。 3）SQL 涉及表存在 Trigger。
 2. SQL 执行计划为分布式执行计划。（PS：查询涉及表中至少有一张为分区表）
 3. SQL 包含 order by 且要求最终的结果集有序输出。
 4. SQL 输出的最终结果集平均每台 Server 输出结果集超过 64K。

## 关键诊断信息

### 触发条件

1. SQL 中包含嵌套语句，至少包含以下情况。

## 问题原因

PX + UDF 的场景会导致事务推进无法串行完成，导致 sql illegal 报错，引入单 SQC 调度，而单 SQC 调度在一些场景（PL UDF，TRIGGER，FOREIGN KEY...）会碰到。

## 问题的风险及影响

风险很高，会导致 hang 在 DTL 上，类似下面这样 wait_unblocking。

![image](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20250211sqlcudf.png)

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户和 MySQL 租户，对于 SYS 租户无影响。

## 影响版本

OceanBase 数据库企业版 V2.2.77 GA（oceanbase-2.2.77-20210508211731）及之后版本、V3.1.2 GA（oceanbase-3.1.2-20210618150922）及之后版本、V3.2.3 GA（oceanbase-3.2.3.0-20220418212020）及之后版本、V3.2.4 GA（oceanbase-3.2.4.0-100000072022102819）及之后版本。

## 解决方法

升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP19（oceanbase-2.2.77-119000122024060513）、V3.2.3 BP9（oceanbase-3.2.3.3-109000182023071410）、V3.2.3 BP8 Hotfix2（oceanbase-3.2.3.3-108020022023051212）、V3.2.3 BP8 Hotfix3（oceanbase-3.2.3.3-108030022023051915）、V3.2.3 BP8 Hotfix4（oceanbase-3.2.3.3-108040052023060909）、V3.2.3 BP8 Hotfix5（oceanbase-3.2.3.3-108050012023070409）、V3.2.3 BP8 Hotfix6（oceanbase-3.2.3.3-108060012023102510）、V3.2.4 BP1 Hotfix1（oceanbase-3.2.4.1-101010022023051317）、V3.2.4 BP3 Hotfix1（oceanbase-3.2.4.3-103010022023051317）、V3.2.4 BP3 Hotfix2（oceanbase-3.2.4.3-103020012023051810）、V3.2.4 BP4（oceanbase-3.2.4.4-104000052023062021）。

## 规避方式

不用 UDF 函数以及计划绑定不生成 PX MergeSort 算子。

上一篇

[OceanBase 数据库列加密功能特性说明](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003563976)

下一篇

[OceanBase 数据库 V3.x 版本中 Oracle 租户执行包含 regexp_replace 复杂表达式时 SQL 报错 -4013 的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001962270) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
