【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.2.1
【问题描述】业务执行某条sql的错误占比100%,返回码为4016。但是通过客户端执行该sql能正常执行。通过trace_id查询的日志如下:
OB_LOG_ob_pro_3_10.252.210.166_20250417151613_20250417161613.zip (4.1 KB)
查询sql如下:
SELECT
/*+READ_CONSISTENCY(WEAK)*/
DISTINCT eb.billaccount_id,
eb.billaccount_code,
eb.billaccount_name,
eb.billaccount_state,
eb.prv_id,
eb.prv_sname,
eb.preg_id,
eb.preg_name,
eb.reg_id,
eb.reg_name,
eb.auditing_state,
eb.billaccount_type,
eb.calc_multi,
eb.plan_date,
eb.use_startdate,
eb.billaccount_remarke,
eb.billaccount_note,
eb.search_keywords,
eb.delete_reason,
eb.cost_center_name,
ecb.elecontract_id,
ecb.relation_state,
dc.contract_id,
dc.contract_code,
dc.contract_name,
dc.data_from,
IF(
dc.data_from = ?,
dc.contract_status,
dc.contract_state
) AS contract_status,
dc.contract_startdate,
dc.contract_enddate,
db.baseresource_id,
db.baseresource_code,
db.baseresource_name,
db.baseresource_cuid,
db.room_owner,
db.room_property,
IF(
db.baseresource_type = ?,
dbs.service_site_type,
db.service_site_type
) AS service_site_type,
db.baseresource_type,
db.equipment_power,
db.tower_equipment_power,
db.airconditioner_power,
db.baseresource_state,
db.tower_site_code,
de.meter_id,
de.meter_code,
de.account_number,
de.meter_state,
de.is_share,
de.electricmeter_multiply,
sd.dep_name,
ec.supply_method,
ec.paymentperiod_id,
ec.price_type,
ec.loss_type,
ec.is_include_all,
ec.elecontract_price,
ec.flat_price,
ec.peak_price,
ec.valley_price,
ec.top_price,
ec.contract_total_amount,
s.supplier_code,
s.supplier_name,
dd.contract_code AS contract_code1,
dd.contract_name AS contarct_name1,
dd.contract_status AS contarct_state1,
ebe.cmcc_ratio,
eb.cost_center,
eb.cost_center_name,
eb.tele_cmn_serv_sys_ratio,
eb.tele_cmn_serv_actual_ratio,
eb.tele_cmn_serv_remark,
eb.last_billamount_startdate,
eb.last_billamount_enddate,
eb.basesite_ele_share_startdate
FROM
ele_billaccount eb
LEFT JOIN ele_billaccountbaseresource ebb ON eb.billaccount_id = ebb.billaccount_id
AND ebb.relation_state = ?
LEFT JOIN dat_baseresource db ON db.prv_id = ?
AND db.baseresource_id = ebb.baseresource_id
LEFT JOIN ele_baseresourceelectricmeter ebe ON db.baseresource_id = ebe.baseresource_id
AND ebe.relation_state = ?
AND ebe.billaccount_id = eb.billaccount_id
LEFT JOIN dat_electricmeter de ON ebe.meter_id = de.meter_id
LEFT JOIN ele_contractbillaccount ecb ON eb.billaccount_id = ecb.billaccount_id
AND ecb.relation_state = ?
LEFT JOIN ele_contract ec ON ec.elecontract_id = ecb.elecontract_id
LEFT JOIN dat_contract dc ON dc.contract_id = ec.contract_id
LEFT JOIN dat_contract dd ON dc.contract_id_rel = dd.contract_id
LEFT JOIN dat_supplier s ON ec.supplier_id = s.supplier_id
LEFT JOIN sys_department sd ON eb.belong_dept = sd.dep_id
LEFT JOIN dat_basesite dbs ON dbs.basesite_id = db.basesite_id
LEFT JOIN sys_user u ON eb.stay_auditing_user_id = u.user_loginname
AND u.user_state = ?
WHERE
eb.prv_id = ?
AND eb.is_special = ?
AND eb.billaccount_state IN (?, ?, ?)
AND eb.reg_id IN (?, ?, ?, ?, ?, ?, ?, ?, ?)
AND eb.auditing_state IN (?, ?, ?, ?, ?, ?, ?, ?)
AND eb.billaccount_type IN (?, ?, ?, ?)
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!