在设计软件的过程中,往往会遇到批量的添加数据,比如导入excel,直接在DataGridView控件中添加数据再保存到数据库等等。
而我们的第一办法往往是使用for或者foreach循环来一条条读取并插入数据库,虽然说这样没有什么问题,但是效率却很低,经过我们测试发现在局域网中,1万条数据要花费3分钟左右的时间才能走完。这对于强调软件效率的我们来说是不能接受的。那么应该如何优化呢?
我们又想到了另一种办法,即"Insert into TableName Values(' ',' ',' '),Values(' ',' ',' ')",这种方法在一定程度上提高不少的效率,但是这种方法有几个弊端。比如说,在SQL Server 2000中它就不支持这种语法,会提示"第 2 行: ',' 附近有语法错误。"的警告,批量操作也就无从谈起。再比如,这种方法么次最多也只能Insert 1000条数据,如果超过了1000条就会报错:"INSERT 语句中行值表达式的数目超出了 1000 行值的最大允许值。"。当然了,我们可以分为几次,每次添加一千条数据,这样还是比方法一的效率高不少。经过测试(局域网),1W条数据将会耗时15秒左右。
经过测试,我们发现第二种方法要比第一种快了很多,这也是我们所追求的 为沈阳软件订制企业提供更好的服务。