返回信息流有一列数据是0,1,2,3,4,5。。。的顺序,但是中间会插入一些 0 值,比如原始列为
0 1 0 0 0 2 0 0 3 4 0 5 0 0 0 0 6 。。。。
现在要把它更新为:中间所有的 0 值更新为它前面不为 0 的最大值,比如上面序列更新为:
0 1 1 1 1 2 2 2 3 4 4 5 5 5 5 5 6 。。。。
数据量非常大,百万~千万级别的数据。平均情况下是 500万 左右的数据。
目前有一个 3 表连接的方法,但是数据量超过 10万速度就完全不行了。
请高手们指点,非常感谢。
这是一条镜像帖。来源:北邮人论坛 / database / #5842同步于 2011/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
SQL Server 一个百万级数据量更新问题,题意非常简单,不知如何
h1048576
2011/7/30镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
【 在 h1048576 的大作中提到: 】
: 有一列数据是0,1,2,3,4,5。。。的顺序,但是中间会插入一些 0 值,比如原始列为
: 0 1 0 0 0 2 0 0 3 4 0 5 0 0 0 0 6 。。。。
: 现在要把它更新为:中间所有的 0 值更新为它前面不为 0 的最大值,比如上面序列更新为:
: ...................
所有数据行都的遍历,具体这么优化,看你怎么写SQL,直接用存储过程,SQL写的号效率会高点。