只是一个简单的测试, 用了三种方法来做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左右.
越来越慢.
摘要: 多年了,没有什么技术再能让我激动得无法控制住自己,包括WPF的超炫界面功能,我也只是小小地喜悦了一下,但毕竟知道界面设计更多还是美工创意的功夫,见过很多品味不够的开发人员,把自己程序界面搞得花里胡骚,简直得像不小心坐在调色板上的大熊的屁股,只能让人笑话。所以WPF的UI能力似乎离自己还有距离。
但是,Linq,却真得把我雷到了。在我重新坐下来写这段话之前,我是激动得在屋里转了几圈的,嘴里至少把MS骂了十来句“WC!”,这骂不是怀了恨意的骂,而是怀了敬意的骂,是没办法控制自己兴奋和激动的心情的骂,就像是《朱罗纪公园》里的马尔康姆教授第一眼看到人工DNA造出来的活恐龙时,说的那句话:“这帮狗娘养的真的做了!”
阅读全文
在MSDN上闲逛, 无意中看到一个这样的东西: 屏幕逻辑集成.
SLI(屏幕逻辑集成,Screen Logic Integration)用于将古老的UNIX绿色终端字符界面的程序包装成为一个web services, 以便在SOA的架构里重用这些古老的业务逻辑.
比如, 在我们公司中, 业务系统是基于UNIX的终端程序, 一些业务逻辑是在界面上的一些输入框里输入参数, 一些资料, 或是计算结果被显示在屏幕上的一个地方, 这些业务逻辑通过NEON Systems ServiceBuilder可以以web services的方式发布. 其过程如下:
1.在VS中新建一个NEON Systems ServiceBuilder的项目以建立一个SLI方案.(当然, 前提是你得先安装了这个东西).
2.向导提供一个录制器, 用来记录你的telnet程序的输入和输出, 记录下屏幕上的所有的输入了信息的地方和输出了信息的地方.
3.你在向导的录制结果中, 以直观的方式指定哪些是输入参数, 那些区域是输出结果. 还有数据类型等.
4.向导生成有关的对象模型, 生成webservice.
实际运行时呢? 我猜是这样的:
1. web services被调用, 参数被传入. webservices程序调用neon的程序.
2. NEON偷偷以telnet协议连入unix主机, 按录下的按键序列调用unix主机上的程序.
3. 参数在指定的地方由程序摸拟输入.
4. 主机程序回应结果, 这些结果本来是要显示在屏幕上的, 现在被NEON得到, 根据指定的位置信息和这些信息对应, 分辩出哪些是什么字段, 返回给web services程序.
5. web services向调用者回应结果对象.
这个东西真得有用. :D
MSDN上的文章在这里:
http://www.microsoft.com/china/MSDN/library/KnowledgeBase/kb_0409.aspx
项目组的文档风格问题
叫我怎么说?我们项目组里现在充斥着华而不实的文档作风. 做一件事,这样浮燥,这样不脚踏实地是不行的.
写工作文档,规范严格是重要的,但并不是要把简单问题往复杂了搞,不是要把实际问题抽象化,不是要去找一些意义含糊的词语来表达,不是要把一句话可以说明白的意思用一大段话来说得人人都看不懂!
说到工作文档,我想有下面几点要做好,就够了.
一.句法不能出问题:
- 主谓宾一个也不能少.
- 如果主谓宾的词语不能确切地,无岐义地表达事实,那么必须用确切的定语\状语\补语成分.
- 不推荐应用定状补定子句.如果需要的定状补成分是一个子句,那么尽可能分句,在另一句中对于需要限制定的语素进行详细说明.
- 标点符号不能出错,括号内外的标点要遵守括号标点的惯例.
二.用词:
用词的原则为:
- 能简单不复杂.
- 能用常用字词表达,则不用冷僻词.
- 能用有确切含义的技术名词,则不用俗称或是其他非技术名词.
- 能具体不抽象.例如要传达"椅子"的概念,就用"椅子"这个词,而不是采用"泛化单式坐恣人体支撑家俱"这样的词,虽然然这样说起来显得很高档.
- 英文缩写词提供术语解释.
- 有数值指标的,则不用比较级形容词,如"数据库的容量要达到非常大的容量,在大容量下的性能要在可容忍的限度内."这样的话实际上没有传达信息.而"数据库设计要支持1亿条记录的容量,同在达到1亿条数据时,用身份证号查询记录时,得到结果的时间最长不能大于0.1秒"这样的话就精确定义了信息.
看来我们项目组里有些人需要的不是专业技能, 而是需要补习语文!