---
title: PL 调试时页面卡顿 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于PL 调试时页面卡顿 相关的常见问题和使用技巧，帮助您快速解决PL 调试时页面卡顿 的难题。
---
切换语言

- 简体中文
- English

划线反馈

# PL 调试时页面卡顿

更新时间：2023-11-14 07:11

适用版本： V3.1.x、V3.2.x、V3.3.x、V3.4.x、V4.0.x、V4.1.x、V4.2.x 内容类型：Troubleshoot  

## PL 调试时页面卡顿

### 问题现象

通过 ODC 发起 PL 调试时页面卡顿，无任何跳转同时无法单击调试页面的任何按钮。

### 问题原因

通过 ODC 发起 PL 调试时未进行调试必备前置条件的相关判断，同时缺乏调试生命周期管理，导致请求卡死。

### 影响的版本

ODC V3.2.1 及之前的版本。

### 解决方法

1. 升级至 ODC V3.2.2 及之后的版本，此版本进行了 PL 调试相关逻辑的重构。建议升级至 ODC 最新版本以获得更好的 PL 使用体验。
 2. 升级 OBServer 至 V2.2.77、V3.1.x、V3.2.x 对应的最新 PATCH 版本，此类 PATCH 版本对调试进行了优化并支持对象的扩展。

## PL 调试时报错 -4007

### 问题现象

通过 ODC 发起 PL 调试时，OBServer 报错 `-4007`。

### 问题原因

OceanBase 进行 PL 调试必须执行服务端 PS 协议，但是 OceanBase V2.2.x 之前的版本的 OceanBase 服务端 PS 协议的开关默认关闭（`_ob_enable_prepared_statement=0`），因此会报错。

### 影响的版本

所有版本的桌面版和 Web 版 ODC。

### 解决方法

登录目标集群的 sys 租户，切换至 OceanBase 数据库下，执行：

```powershell
obclient> select * from __all_virtual_sys_parameter_stat where name='_ob_enable_prepared_statement' \G
obclient> alter system set _ob_enable_prepared_statement=1;
Query OK, 0 rows affected (0.03 sec)

```

## PL 调试时报错 -4153

### 问题现象

通过 ODC 发起 PL 调试时报错：

```powershell
do not have enough resource to hold new debugger

```

### 问题原因

OBServer 无更多的线程资源分配给调试功能，调试过程报错退出。

### 解决方法

#### 方法 1

OBServer 分配给调试功能的线程数计算方式：`unit_cpu * cpu_quota_concurrency / 2`

其中，`unit_cpu` 为租户规格，`cpu_quota_concurrency` 为配置项，可以通过调大两个参数增大调试可用的线程资源。

#### 方法 2

如果开发环境重启 OBServer 不受影响，可以重启 OBServer 释放部分线程资源，以快速忽略此问题。

## 无效 PL 对象调试时报错

### 问题现象

调试无效 PL 对象时报错：无效 PL 对象不支持调试。

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/3.common-troubleshooting/4.pl-object/6.page-freezes-during-pl-debugging/1.png)

标有黄色叹号图标的 PL 名称即为无效的 PL 对象。

![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/3.common-troubleshooting/4.pl-object/6.page-freezes-during-pl-debugging/2.png)

### 问题原因

调试无效的 PL 对象时可能会产生不可预知的错误，所以需要用户将无效的 PL 对象变为有效状态后，再进行调试。

### 解决方法

#### 方法 1

1. 将鼠标移动到告警图标，查看当前 PL 对象的无效原因。

   ![3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/3.common-troubleshooting/4.pl-object/6.page-freezes-during-pl-debugging/3.png)
 2. 根据提示消除无效状态。例如：创建缺少 PL 对象依赖的数据库对象后重新编译此 PL 对象。

#### 方法 2

如果已根据方法 1 解决 PL 依赖对象不存在或者 PL 本身内部语法问题等无效原因并重新编译后，PL 对象状态仍然无效，可以删除并重新创建 PL 对象。

Previous

[PL 对象无法执行或执行报错](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000262300)

Next

[PL 匿名块无法调试](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000262302) ![有帮助](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) 咨询热线
