8004 - Transaction is too large, size: 1073791624

我发的是 2G的, 10G的已经执行了 1600s 了还在卡着
问题是,我这个表.数据都没那么大啊
而且这个东西,我就更新个 Id …怎么会出现你说的key entry 超过2G

hash join 还有一张表的

你可以把update 修改成select语句试一下 是否可以执行出结果

update 这个 id字段 语句,会用到别的字段?

根据执行计划a表 是没有走索引的 需要全表

可以根据索引限制一下a表的范围。尝试分批

那不是很奇怪的事情?
第一个.这表数据其实很小.就算全表扫描也就 4万行
另外,这个表这个 AdCreativeId字段有索引的
select执行计划可以看到有走索引


没搞懂这个,我一样的数据在 MSSQL中(我是从SQLServder迁移到TiDB), 几秒钟就完了.到这里完全是无法用
难道这种语句有什么特殊的?
那请问,这种SQL需要怎么执行才可以顺利执行.就是 A表根据B表的某个字段做一次更新
这不是很寻常的SQL嘛.我要吐血了.

sql确实很简单,你可以重新收集一下两个表的统计信息看下

我试了 重新 analyze table 了,
可以执行成功了.虽然还是很慢

具体是啥原因呢?

不清楚 … 重新 analyze table 后,可以执行得了了.但是还是慢慢慢慢

analyze 之后的 慢日志内容给一下吧(可以只给这个 SQL 的)

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。