只是一个简单的测试, 用了三种方法来做10万条记录的插入. 不过我没有测试拼10万条sql插入的效率.
应用在:dell inspiron 640M本本上跑的. 1.60双核CPU, 2G内存. 服务器是HP360, 8CPU, 4G内存. SQL2000数据库.
仅供参考.
一.每次都调用ctx的InsertOnSubmit方法把对象放入:
2008-7-18 14:29:55 开始生成100000个对象. 并直接放入ctx; 用时4秒
2008-7-18 14:29:59 开始SubmitChanges; 用时3分26秒
2008-7-18 14:33:25 完成.
运行时内存占用了4M左右.
二. 先生成一个list, 最后把list调用ctx的InsertAllOnSubmit方法把全部对象放入:
2008-7-18 18:45:06 开始生成100000个对象. 并放入list 用时1秒
2008-7-18 18:45:07 开始把list全部对象加入ctx. 用时2秒
2008-7-18 18:45:09 开始执行submitChange 用时3分33秒. 应该是数据库的原因导致的慢了7秒. 个人认为不重要.
2008-7-18 18:48:42 完成.
运行时内存占用了4M左右.
三.每生成一个记录都调用ctx的insertOnSubmit, 并且都立即执行submitChanges. 每5000个报一次.
2008-7-18 19:41:28
2008-7-18 19:41:29 0
2008-7-18 19:42:08 5000 此5000条用 39 秒
2008-7-18 19:43:39 10000 此5000条用 91 秒 多了52
2008-7-18 19:46:02 15000 此5000条用143 秒 多了52
2008-7-18 19:49:17 20000 此5000条用195 秒 多了52
2008-7-18 19:53:25 25000 此5000条用248 秒 多了53
2008-7-18 19:58:29 30000 此5000条用304 秒 多了56
2008-7-18 20:04:28 35000 此5000条用359 秒 多了55
2008-7-18 20:11:22 40000 此5000条用414 秒 多了55
2008-7-18 20:19:14 45000 此5000条用472 秒 多了58
2008-7-18 20:28:05 50000 此5000条用531 秒 多了59
2008-7-18 20:37:50 55000 此5000条用585 秒 多了54
2008-7-18 20:48:35 60000 此5000条用645 秒 多了60
2008-7-18 21:00:38 65000 此5000条用723 秒 多了78
2008-7-18 21:13:01 70000 此5000条用743 秒 多了20
2008-7-18 21:26:01 75000 此5000条用780 秒 多了37
.... 等不及了, 关了程序了.
运行时内存占用了4M左右.
越来越慢.