SQL Server 大量Update和Insert操作如何提升性能?

0
业务是这样的:
每个物品有唯一编号如0011,业务表中需要对物品的每个状态更新进行记录,业务表结构如下:id, item_id, pre_time, cur_time, value(除了id其他都是varchar(20),历史遗留问题)
每次进来一个作业(item_id, this_value, time_now),内存中维护每个item的last_value信息,如果该item的last_value == this_value则对业务表更新,将cur_time更新为time_now。如果该item的last_value != this_value则对业务表进行插入操作,新增一条记录(id++,item_id, pre_time=time_now, cur_time=time_now, value=this_value)
现在的问题是每秒钟需要进行的作业量很多(需要对业务表进行频繁的插入、更新操作),只有id的聚集索引,更新速度非常慢,大概每秒钟只能处理几十个作业,但是每秒钟有1000+的更新
已邀请:
0

郑大鹏 2015-12-28 回答

你这个主要是判断item 的 last_value 是否== this_value,所以数据在检索的时候是先检索 item字段 再检索的 value 字段,没有索引貌似要全表扫描啊,所以可以建立一个 itemid+value 组合索引试试

要回复问题请先登录注册