---
title: 批量执行 SQL ，出现 -4012 超时的原因及解决方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于批量执行 SQL ，出现 -4012 超时的原因及解决方法相关的常见问题和使用技巧，帮助您快速解决批量执行 SQL ，出现 -4012 超时的原因及解决方法的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 批量执行 SQL ，出现 -4012 超时的原因及解决方法

更新时间：2026-05-29 08:46

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

## 问题现象

使用应用脚本进行批量执行 SQL 时，其中一条 SQL 语句执行过慢，出现 -4012 超时报错，并退出。

## 问题原因

查看对应的日志情况：

```shell
[2024-03-27 12:32:51.076136] WARN  [STORAGE] wait (ob_store_file.cpp:132) [2804098][3738][XXXXXXXXXXX-XXXXXXXXXXXXXXXXX] [lt=141] [dc=0] Fail to wait block io, (macro_id_=4304507-18-0-0[77313715835], ret=-4012, timeout_ms=0)
[2024-03-27 12:32:51.076176] WARN  [STORAGE] get_block_data (ob_micro_block_handle_mgr.cpp:64) [2804098][3738][XXXXXXXXXXX-XXXXXXXXXXXXXXXXX] [lt=39] [dc=0] Fail to wait micro block io, (ret=-4012)
[2024-03-27 12:32:51.057117] WARN  [COMMON] wait (ob_io_manager.cpp:100) [2804098][3738][XXXXXXXXXXX-XXXXXXXXXXXXXXXXX] [lt=11] [dc=0] IO wait timeout, (timeout_ms=0, ret=-4012, *master_={inited:true, need_callback:true, has_finished:false, has_estimated:false, io_info:{size:12288, io_desc:{category:0, wait_event_no:1, req_deadline_time:0}, batch_count:1, io_points:[{fd:{fd:843, disk_id:{disk_idx:0, install_seq:0}}, offset:9027206348800, size:12288, write_buf:null}], fail_disk_count:0, fail_disk_ids:[]}, callback:0x7f6dae11a890, buf:0x7f8f7155d000, buf_size:12288, aligned_offset:884736, io_ret:0, finish_count:1, io_ret:0, finish_count:1, requests:0x7f6dae11a688, time:{begin_time:1711513971051925, prepare_delay:2, send_time:1711513971051927, recv_time:1711513971054249, callback_enqueue_time:1711513971054249, callback_dequeue_time:0, callback_delay:0, end_time:0}, ref_cnt:2, out_ref_cnt:1, resource_mgr:0x146c5000, io_error_handler:null, parent_io_master_holder:{ptr:null}, recover_io_master_holder:{ptr:null}, callback:{micro_block:null}})

```

从相关 OBServer 日志发现，SQL 执行期间，对应节点 OBServer.log 日志持续打印 `IO wait timeout, (timeout_ms=0, ret=-4012`，导致 SQL 执行耗时时长，较数据库空闲时有大幅增长，最后 SQL 超时退出。拆分应用跑批任务后，问题得到解决。

## 问题的风险及影响

影响应用批量执行 SQL 任务结果。

## 适用版本

OceanBase 数据库 V2.x、V3.x、V4.x 版本。

## 适用的租户

OceanBase 数据库的 SYS 租户、MySQL 租户、Oracle 租户。

## 解决方法及规避方式

拆分应用脚本，降低执行 SQL 的并发，降低 IO 的使用。

Previous

[OBKV-Table 常见问题诊断](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001100159)

Next

[优化器连接算法默认使用 Hash Join 的影响与调整策略](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006456197) ![有帮助](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) 咨询热线
