【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】5.7.25-OceanBase_CE-v4.3.5.2
【问题描述】
- 都是内连接,不知道为什么第一个SQL进行分组就会报错 4016 - Internal error
- 其他三个SQL区别就是group by和select的不一样
- 主要报错是增加了这一行统计:sum(effective_sale_num) / sum(effective_sale_count),注释了也是可以执行的
- 尝试用 select last_trace_id(); 去数据库看Observer的日志看不出什么问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
SQL和表结构
-- 报错SQL:4016 Internal error
select
sa.market_id as mark_id
,sum(effective_sale_num) / sum(effective_sale_count)
from stat_dws_market_sale sa
join sys_base_shop as em on sa.market_id=em.id
where em.id = 441
group by sa.market_id;
-- 正常执行
select
em.id as mark_id
,sum(effective_sale_num) / sum(effective_sale_count)
from stat_dws_market_sale sa
join sys_base_shop as em on sa.market_id=em.id
where em.id = 441
group by em.id;
-- 正常执行
select
sa.market_id as mark_id
,sum(effective_sale_num) / sum(effective_sale_count)
from stat_dws_market_sale sa
join sys_base_shop as em on sa.market_id=em.id
where em.id = 441
group by em.id;
-- 正常执行
select
em.id as mark_id
,sum(effective_sale_num) / sum(effective_sale_count)
from stat_dws_market_sale sa
join sys_base_shop as em on sa.market_id=em.id
where em.id = 441
group by sa.market_id;
CREATE TABLE `stat_dws_market_sale` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`market_id` int(11) NOT NULL COMMENT '店铺ID',
`calculate_date` date NOT NULL COMMENT '销售日期',
`sale_count` int(11) DEFAULT '0' COMMENT '销售单数',
`sale_num` int(11) DEFAULT '0' COMMENT '销售数量',
`sale_amount` decimal(15,3) DEFAULT '0.000' COMMENT '销售金额',
`effective_sale_count` int(11) DEFAULT '0' COMMENT '有效销售单数',
`effective_sale_num` int(11) DEFAULT '0' COMMENT '有效销售数量',
`effective_sale_amount` decimal(15,3) DEFAULT '0.000' COMMENT '有效销售金额',
`gte500` int(11) DEFAULT '0' COMMENT '单笔金额大于等于500计数',
`gte700` int(11) DEFAULT '0' COMMENT '单笔金额大于等于700计数',
`gte1000` int(11) DEFAULT '0' COMMENT '单笔金额大于等于1000计数',
`shoe_count` int(11) DEFAULT '0' COMMENT '鞋子计数',
`socks_count` int(11) DEFAULT '0' COMMENT '袜子计数',
`inner_pants_count` int(11) DEFAULT '0' COMMENT '内裤计数',
`coat_count` int(11) DEFAULT '0' COMMENT '外套计数',
`suit_count` int(11) DEFAULT '0' COMMENT '套西计数',
`down_cloth_count` int(11) DEFAULT '0' COMMENT '下装计数',
`inner_cloth_count` int(11) DEFAULT '0' COMMENT '内搭计数',
`accessory_count` int(11) DEFAULT '0' COMMENT '配饰计数',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`audit_tx_id` varchar(32) DEFAULT NULL COMMENT '审计标识',
PRIMARY KEY (`id`, `calculate_date`),
UNIQUE KEY `idx_unique` (`market_id`, `calculate_date`) BLOCK_SIZE 16384 LOCAL
) ORGANIZATION INDEX AUTO_INCREMENT = 22206 AUTO_INCREMENT_MODE = 'ORDER' DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0 COMMENT = '店铺每日销售汇总表';
CREATE TABLE `sys_base_shop` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`org_id` varchar(32) NOT NULL COMMENT '组织id',
`code` varchar(32) DEFAULT NULL COMMENT '店铺编号',
`simple_name` varchar(256) NOT NULL COMMENT '店铺简称',
`operating_state` varchar(4) DEFAULT NULL COMMENT '营业状态 0:正常营业、1:临时停业、2:关店停业',
`quality` varchar(4) DEFAULT NULL COMMENT '经营模式:1线下直营;2线下加盟;3联营;4批发……',
`principal` varchar(32) DEFAULT NULL COMMENT '收件人',
`principal_phone` varchar(32) DEFAULT NULL COMMENT '收件联系方式',
`boss` varchar(20) DEFAULT NULL COMMENT '老板',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`country` varchar(64) DEFAULT NULL COMMENT '国家',
`province` varchar(64) DEFAULT NULL COMMENT '省',
`city` varchar(64) DEFAULT NULL COMMENT '市',
`area` varchar(64) DEFAULT NULL COMMENT '县/区',
`address` varchar(128) DEFAULT NULL COMMENT '详细地址',
`longitude` varchar(32) DEFAULT NULL COMMENT '经度',
`latitude` varchar(32) DEFAULT NULL COMMENT '纬度',
`principal_json` longtext DEFAULT NULL COMMENT '相关负责人json',
`not_cashier_user_id` varchar(512) DEFAULT NULL COMMENT '不允许收银的用户id(多个,逗号隔开)',
`state` varchar(32) NOT NULL COMMENT '状态(字典:初始化/正常)',
`enable` varchar(32) NOT NULL COMMENT '启用状态,字典(通用启用状态)',
`create_time` datetime(3) NOT NULL COMMENT '创建时间',
`create_user` varchar(32) NOT NULL COMMENT '创建人',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
`update_user` varchar(32) DEFAULT NULL COMMENT '更新人',
`del_flag` varchar(32) NOT NULL COMMENT '删除标记,字典(通用删除标记)',
`audit_tx_id` varchar(32) DEFAULT NULL COMMENT '审计标识',
PRIMARY KEY (`id`),
KEY `idx_org_id` (`org_id`) BLOCK_SIZE 16384 LOCAL,
KEY `idx_principal` (`principal`) BLOCK_SIZE 16384 LOCAL
) ORGANIZATION INDEX AUTO_INCREMENT = 2111743114 AUTO_INCREMENT_MODE = 'ORDER' DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0 COMMENT = '店铺资料基本信息'
日志
- 搜索数据库的日志:grep -r ‘YB4276C3B224-00064959E8D6FC84-0-0’.
observer.log:[2026-01-30 15:20:22.983771] WDIAG [SQL.PC] common_free (ob_lib_cache_object_manager.cpp:139) [28131][T1002_L0_G0][T1002][YB4276C3B224-00064959E8D6FC84-0-0] [lt=22][errcode=0] set logical del time(cache_obj->get_logical_del_time()=24441613253236, cache_obj->added_lc()=false, cache_obj->get_object_id()=62469, cache_obj->get_tenant_id()=1002, lbt()="0x2644d88d 0x1943e08e 0x92c2608 0x92b3dc5 0x92a5f03 0x929ef9d 0x928c144 0x13217099 0x260d8d52 0x7f36c0d36ea5 0x7f36c0a5fb0d")
···
