一张表中有一个MSGID字段是Varchar(50),里面数据可能有300万,而且以后会更多,我现在通过web服务每次从对方那边获取500条信息,然后循环这个500条信息的MSGID,然后根据这个MSGID去修改表中对应的另外几个字段,
也就是说我循环了500次,数据库编辑了500次,这个效率好低,执行完差不多要20秒左右,想请问各位有什么好的办法解决吗?
也就是说我循环了500次,数据库编辑了500次,这个效率好低,执行完差不多要20秒左右,想请问各位有什么好的办法解决吗?
SqlBulkCopy
拼接成一条SQL应该都比循环快点
好像是8000个字符长度
你不能定义5个参数吗?一个参数负责100条记录(100*50=5000)
怎么定义?举个简单的例子给我看看。
就拿两个字段来说,MSGID和Address Msgid为5-10位的字符串,Address为地址,长度不定,把@msgID和@Address当参数传递吗?参数如何定义显示呢?把500个MSGID和ADDRESS用逗号隔开当字符串传递吗?
@msgID varchar(max),
@Address varchar(max)
as
begin
....
end