日期:2014-05-17  浏览次数:20661 次

sqlserver 快速查找插入记录
现有一个数据库,其中一个表格有500万记录,四个字段。想设计一个存储过程,先判断记录有无重复,如没有就插入。还要求能够快速处理多条记录,比如一秒内起码处理30条左右。请教高手们?
------解决方案--------------------
一秒30条其实不算多,问题就是你的表上不要有太多索引、约束且最好表已经做了分区,数据库恢复模式不要为完整模式,然后加快select的查询。因为像你这种insert,首先还是要select出来的。
------解决方案--------------------
五百万条不多啦。最简单的做法就是四个字段联合做一个唯一索引。如果有重复数据插入,自然就会报错。
------解决方案--------------------
if not exists(select 1 from tb where col1=参数1 and  ……)
   insert into(tb)
   values

实现很好实现,再相应列上建立索引。如果速度还达不到,考虑分区表
------解决方案--------------------
1.如果单纯是判断重复,不重复即插入数据 则用唯一索引是比较有效的方法。
2.如果判断是重复后 还有其他的操作 比如重复后做日志等操作 则用存储过程比较合适。