(待求证)更正老师免费视频里“类型化DataSet批量插入数据”的一个不right的地方
2011-10-23 11:20
369 查看
老师在第30课《类型化DataSet批量操作》里讲到批量插入数据时建议手动打开数据库连接,再执行批量插入,这样的效果是:手动打开连接插入耗时比不手动打开连接节省时间高达20多倍(一个耗时45秒,一个耗时2秒)
(老师视频代码)
我看了有个疑问,因为我们知道,先运行的要耗用时间,再运行一次时间就会大大减少,如我们运行大型软件时比如Photoshop,第2次运行会比第一次运行快很多。
这是因为第一次运行已经把数据载入到内存中了,关闭后再运行是直接从内存中调用(刚才载入,还没来得及释放)的数据。当然会快很多。
所以我猜测:老师第2次运行的是添加了“手动打开连接代码”的程序,沾了第1次运行的程序的光,沾了内存的光,所谓长江后浪推前浪,前浪累死在沙滩上,后浪沾了很大的光。
于是我测试了3种情况,N次运行,(每次都先清空数据库,防止数据文件过大载入过慢),结果如下:
1.插入3000条数据,两种代码先后运行N次(防止沾内存的光),耗时相差并不大,一个耗时2秒,一个耗时1秒;
2.插入10000条数据,结果同上,一个耗时2秒,一个耗时1秒;
看来数据量小了,加到50000条:
3.插入50000条数据,两种代码先后运行N次,添加了手动打开连接的耗时30秒,没添加手动打开连接的耗时37秒。看来相差并没有老师说的那么明显。
这是为什么呢?有疑问了,如果有机会,我一定要请教一下。
(老师视频代码)
我看了有个疑问,因为我们知道,先运行的要耗用时间,再运行一次时间就会大大减少,如我们运行大型软件时比如Photoshop,第2次运行会比第一次运行快很多。
这是因为第一次运行已经把数据载入到内存中了,关闭后再运行是直接从内存中调用(刚才载入,还没来得及释放)的数据。当然会快很多。
所以我猜测:老师第2次运行的是添加了“手动打开连接代码”的程序,沾了第1次运行的程序的光,沾了内存的光,所谓长江后浪推前浪,前浪累死在沙滩上,后浪沾了很大的光。
于是我测试了3种情况,N次运行,(每次都先清空数据库,防止数据文件过大载入过慢),结果如下:
1.插入3000条数据,两种代码先后运行N次(防止沾内存的光),耗时相差并不大,一个耗时2秒,一个耗时1秒;
2.插入10000条数据,结果同上,一个耗时2秒,一个耗时1秒;
看来数据量小了,加到50000条:
3.插入50000条数据,两种代码先后运行N次,添加了手动打开连接的耗时30秒,没添加手动打开连接的耗时37秒。看来相差并没有老师说的那么明显。
这是为什么呢?有疑问了,如果有机会,我一定要请教一下。
相关文章推荐
- sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
- 批量插入一个表的数据到另一个表
- 如何新建一个DataSet,并且插入相应的数据
- C# 把一个DT内的数据 批量插入到数据库里(SQL server 2005)
- 一个简单的存储过程(批量插入数据)
- sql 批量插入(一个数据库的表数据,添加到另一个数据库表) 数据类型nText和varchar在运算符equals不兼容的问题解决方案
- sql如何向一个表中批量插入大量数据
- .NET 批量插入数据,DataSet, SqlDataAdapter.Update
- SQL批量插入数据:将同一个表中某列符合条件的数据批量插入此表中
- 数据库sql批量插入数据,一个表插入另一个表,或表结构相同数据批量插入
- 存储过程配合UpdateDaset方法批量插入Dataset数据实现代码
- 存储过程配合UpdateDaset方法批量插入Dataset数据实现代码
- 用存储过程加UpdateDaset方法批量插入Dataset数据
- SQL向一个表中批量插入&&删除大量数据
- sql Server 批量插入以及sql Server数据导入到mysql sqlServer数据每10000条导出一个文件
- 批量数据插入一个表的问题,生成ID 请教副总
- 王家林老师大数据免费视频!
- [sql server]在一个只有自增字段的表里插入数据
- mybatis以map的方式批量插入list集合数据操作步骤
- Android 批量插入数据到SQLite数据库