怎样提高向SQLServer中插入数据时的速度
通过SqlCommand向数据SQLServer2005里插入数据。怎么提高数据的写入速度?现在一张表一次插入5000行左右的数据。100多列。需要10多秒。还有每次建立与SQLServer的连接,头一次都对相比较慢,有什么解决的办法?
[解决办法]
试在建立存储过程,在存储过程中写插入语句,写的值以参数形式传值过去。
[解决办法]
在进行插入之前打开连接,之后批量操作,将所有数据插入完成之后在关闭连接
[解决办法]
像两百个字段的表,插入速度,无论再优化,也会有限制的,如果这些字段还有索引还会更慢,因此在不改变设计的情况下要提高速度:
1、减少索引(不过会影响查询速度)
2、带事务批量更新(批量插入后,统一提交事务)
3、若能实现,尽可能采用以下这种方法,能成倍提高效率
INNER INTO A(a,b,c)
SELECT a,b,c from B
4、最根本的解决之道合理设计
[解决办法]
插入的效率是放在次要地位的。查询效率是放在第一位的。
100多行的表,插5000条数据,用10秒,也能接受。在界面UI上优化一下就行了,比如设置一个进度条什么的。
如果求快,可以使用各数据库系统的批量插入方法,比如sqlserver的BulkCopy,oracle的数组方法等。
但那没有通用性,除非是非常讲究效率的场合。