|
最初由 badduke_xgm 发布
[B]这里有db2/as400的专家太好了,我快疯掉了
最近客户这边有一台as400的机器,我们要把sqlserver2000的数据库移植到db2/as400上,数据库是已经移过去了,但发现对db2/as400的速度实在不行,跟在sqlserver2000比,相差4,5倍,如果语句复杂点就更不好说,特别是like之类的,很慢,找了很多关于db2的资料,就是没有说到db2/as400上的执行效率问题,我们的数据库现在量不大,就十几万数据量,不知道那位大哥能帮我说说是什么原因 [/B]
原因其实很简单,既然你用db2/400代替了sqlserver2000,那表明你使用的是ODBC或者JDBC, 无论使用何种方式,都是通过DRDA访问AS400, 众所周知,这正是AS400最大的弱项,性能低得惊人.
我们曾经在830(在890没出来之前,它曾经是AS400第二高档的机器)通过这种方式做交易,发现性能只能达到2笔/秒左右的交易性能,恍如一下子回到了10年前PC服务器的年代,当时真觉得不可思议啊.咨询IBM,确认ODBC确实是AS400的短板,即使S/390也不例外.所以如果贵公司没有自已的技术能力提高ODBC访问性能的话,最好别用了,当然,通过自已的中间件将数据库访问程序后移到400上,是个好办法,但原来不熟400的公司基本没有这种技术积累,所以也不可用.
前面很多人讨论到400性能的问题,似乎400上PF+LF+RPG是唯一性能最高的技术方案,其实也不是这么回事的. RPG在顺序访问记录和按索引访问记录的速度较快,但RDB+SQL在按复合条件查询记录方面,性能更高,这与AS400上提供了SQL优化引擎是有关系的.如果你真的精通SQL的执行计划和优化原理,真的精通了ODBC所有底层API, 那么你完全是有可能用ODBC+SQL写出性能高于RPG一倍以上的代码.这不是我胡扯的,已经有了真正实践的证明.
还有就是,既然选择400,大家也就不必要拿p系统的性能与它PK,必竟P系列卖点是性能,I系统卖点是稳定性,易管理易维护性,及大并发时资源平均分配的能力.必竟I系列CPU一般比P系列少,而且采用的是硬件技术独立的虚拟机技术.若拿I系列与P系列相比,就好比拿java与 c 比性能一样,这是不公平的. AS400的优势是,作为系统管理员,大部分属于硬件的,系统资源分配和管理的问题,不需要你插手了,自我调配能力强,减轻了管理员负担,降低了因系统配置不当导致系统不稳定的风险. 至于性能,只要满足了业务的需要并有冗余就已经满足要求了,盲目去比拼性能又有什么意义了. 再说,现在I系统和P系列的硬件统一了,性能差距应该也缩小了,相信性能也不会再成问题.
还是那句话,如果你追求性能,而且相信自已对UNIX系统的调节管理能力,那就选用P系列.如果你追求易管理维护性,希望不想学习太多硬件知识也能实现一个稳定的系统平台,那么选用I系列吧.
两个平台分别适合两类不同的技术人员,基本没有交叉点,再多的争论都是完全没有意义的. |
|