楼主的描述不是很清楚,根据楼主目前的描述楼主的主要问题包括: 1.判断是否已在当前上报时间之前,也就是T1历史记录中存在 2.存在,就要分别进行12种状态判断,并分别对应update 3.对于没有重复的那部分上报数据,需要批量更新更新,也是和其他表需要关联 4.T1表数据允许重复,T2表有主键字段A鉴于这种情况,个人建议做如下处理: 1.建立一个上传数据临时表 temp_T1,结构与T1相同,增加一个标志字段 flag,默认值为0 2.每天上传的数据上传到临时表 temp_T1 3.与T1表进行关联,设置重复记录的 flag 为1,可以用类似下面的语句 update a set flag=1 from temp_T1 a where exists( select * from T1 where 字段A=a.字段A) 4.根据 flag 状态与与其他表关联进行对应的更新处理(这部分处理楼主未描述,应该是能批量处理) 5.将更新后的 temp_T1 表数据插入到 T1 6.清空 temp_T1 以备接收后续数据 truncate table temp_T1
我相信你的更新时间可降到5分种左右
可以举个简单例子说明一下吗?!非常感谢!!!
-----------------------
应该是楼主自己说出具体要求才能确定。
-- 这部分小弟觉得似乎只能用游标来做了,大家有什么更好的建议吗?!----------------------------------------------------具体情况具体对待,未必需要通过游标,一个在楼主看来复杂的问题,用一条SQL语句解决也未尝不可
楼主的描述不是很清楚,根据楼主目前的描述楼主的主要问题包括:
1.判断是否已在当前上报时间之前,也就是T1历史记录中存在
2.存在,就要分别进行12种状态判断,并分别对应update
3.对于没有重复的那部分上报数据,需要批量更新更新,也是和其他表需要关联
4.T1表数据允许重复,T2表有主键字段A鉴于这种情况,个人建议做如下处理:
1.建立一个上传数据临时表 temp_T1,结构与T1相同,增加一个标志字段 flag,默认值为0
2.每天上传的数据上传到临时表 temp_T1
3.与T1表进行关联,设置重复记录的 flag 为1,可以用类似下面的语句
update a set flag=1
from temp_T1 a
where exists(
select * from T1 where 字段A=a.字段A)
4.根据 flag 状态与与其他表关联进行对应的更新处理(这部分处理楼主未描述,应该是能批量处理)
5.将更新后的 temp_T1 表数据插入到 T1
6.清空 temp_T1 以备接收后续数据
truncate table temp_T1