关于大数据,逐行update 的问题

[复制链接]
查看11 | 回复6 | 2021-1-27 05:42:41 | 显示全部楼层 |阅读模式
请教下各位大神,我这里有一张表七八十万条数据。需要更新里面的几个字段,每个字段都是一次子查询,查出来的新值,写的for循环去取值,紧接着去update在外面每200行提交一次,这样效率很低下,想请教各位大神有没有更好的办法,可以优化下。数据库是Oracle



分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
mergeinto用法你可以看一下,刚好用于处理你这种问题
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
引用1楼qq_41622282的回复:mergeinto用法你可以看一下,刚好用于处理你这种问题
这个子查询的结果,不单单是引用还会牵扯计算,还有如果单单mergeinto,那是不是因为着我得用7次?我有7个字段更新?
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
引用2楼%星辰%的回复:Quote: 引用1楼qq_41622282的回复:
mergeinto用法你可以看一下,刚好用于处理你这种问题

这个子查询的结果,不单单是引用还会牵扯计算,还有如果单单mergeinto,那是不是因为着我得用7次?我有7个字段更新?

不知道你这个计算是怎样的计算,如果能够通过数据库来计算,查询的时候直接做就可以了,条件满足就更新。如果像你说的那种,复杂到一个查询只能做一个计算,这样的话话确实是要用7个
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
需要优化的感觉是逻辑问题,每次update之前需要7次查询,不计算update的时间,光查询,1次算10ms,一条就是70ms,1000条就是70s,你快不起来的。当然如果你没有这个数量级,就另当别论了
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
引用4楼dkwuxiang的回复:需要优化的感觉是逻辑问题,每次update之前需要7次查询,不计算update的时间,光查询,1次算10ms,一条就是70ms,1000条就是70s,你快不起来的。当然如果你没有这个数量级,就另当别论了
逻辑问题?没明白,我现在就是因为要逐条去重算数据,才需要这种处理,数量级基本就是100w左右,你是说这个吗?
回复

使用道具 举报

千问 | 2021-1-27 05:42:41 | 显示全部楼层
queryCol的代码能贴吗?我看7次参数就最后一个参数不同,是否能只调用一次,计算7个字段
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行