【 使用环境 】
测试环境:单节点数据库,数据库版本为5.7.25-OceanBase_CE-v4.3.1.0,运行平台为open euler2203.
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
1、向数据库表进行插入时,偶尔会延迟比较高;
2、使用odbc进行数据库连接与操作,插入语句如下:
int OceanBase::Insert(const std::string &sql)
{
LogTrace() << "Insert sql: " << sql.c_str();
if (!m_odbcInit)
{
LogError() << "Obdc init failed.";
return GM_FAILED;
}
// insert
SQLHSTMT hstmt = nullptr;
SQLRETURN retcode = SQLAllocHandle(SQL_HANDLE_STMT, m_odbcHandle.hdbc, &hstmt);
if (!IsSuccess(retcode)) {
LogError() << "SQLAllocHandle hstmt failed, retcode = " << retcode;
return GM_FAILED;
}
defer _(nullptr, [&](...) {
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
});
retcode = SQLExecDirect(hstmt, (SQLCHAR *)sql.c_str(), SQL_NTS);
if (!IsSuccess(retcode, hstmt)) {
LogError() << "Obdc Insert SQLExecute failed,sql = " << sql.c_str()
<< ",retcode = " << retcode;
return GM_FAILED;
}
LogTrace() << "Insert done.";
return retcode;
}
大部分时间,调用该函数后,都能很快完成。但是偶尔会出现,函数阻塞较长时间的情况。
3、问题出现时间点:
1)2024-07-28 15:42:52之后的一小段时间;
2)2024-07-28 15:47:04之后的一小段时间。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
ob_log_127.0.0.1_20240728140000_20240728170000.zip (9.5 MB)