原出处:http://bbs.hc3i.cn/thread-4366-1-1.html
昨天和一个朋友谈起医疗信息系统数据库,郑州某医院使用了cache数据库,对于这个数据库本人不是很熟悉,然后就查询了下相关的资料,也有百度百科上的说法,总之有点是很多的啦,然后看到一篇这样的文章《关于Cache数据库的缺点》,觉得写得比较客观,现分享下,以供大家在做选型的时候根据实际的有点和风险进行决策选型。
--------正文
以我三甲医院运行CACHE6年的经历来说,CACHE确实不太适合中国大规模三甲医院使用。数据复杂度高,标准多,更改勤,这是美国医院相对少见的。
医院已经使用CACHE6年多,天天看着这个东西,我相信比那些写枪文的人更有发言权。
1. 性能问题:现在不到4000万条记录,1.5T的信息量,CACHE都会速度超慢。查询3个月以上的数据就会死掉。别相信那些CAHCE市场材料宣传的东西。医院系统的复杂性不在绝对记录数量,而在高度的复杂度。
2. 一旦上线,分库困难。数据库越来越膨胀,速度越来越慢,最后小型机用了四年后都不够用了,还得升级小型机。我们医院当年购买ibm小型机可是很快的,可是都赶不上膨胀的速度
3. 死数据。由于OO架构限制,如果对象做了修改,而且又已经有了实例数据,那么这个对象不能进行删除(我是指业务上),时间长了之后,导致垃圾逐渐增多,不少已经定义的实例,导致速度慢,错误多。如果曾经做过OO编程的人,考虑一下定义n多对象并且有两大数据之后,突然要你修改某层对象架构(很多时候还是翻天覆地的变化)的时候,那种感觉和心情。
4. 锁定:Cache的数据库锁机制及其弱智,懒得说。好在医院的数据多是增加,很少有删除的情况,要不早出现很多乱子了。问了几家大型his公司总工级别的人物,对于锁都答非所问。让人心寒。
5. 基于OO的数据库并不成熟。在我多年使用中,感觉不如 RDB + XML的混合方式解决方便。OO非常适合抽象,但是如果这个对象经常都在改,那简直就是生不如死了。有人会说,对象会经常改吗?——那到医院来看看吧。随着医疗信息化的深入,需要改的地方只会增多,不会减少。我们从基于cache信息化厂商那里得到的“不能”已经越来越多了。
6. 资料匮乏:使用的人少,资料奇缺,人材很少。自带的CSP界面极差,功能很弱。编程语言晦涩难看,一点都不优雅(这点是个人意见),上网能找到的文章都是枪文,我从来没有在中文网上找到什么非常深入的cache数据库分析文章;公司实力有限(相对于ms,oracle),一个CSP溢出漏洞都要改半天。没有大量的人使用,金子也会变成垃圾。
7. 不知道那些枪文里边写的安全性很高是什么意思?我看了半天DOD TCSEC的档案,抱歉,没有发现CACHE的影子
8. 数据迁移问题。现在很多系统,基于RDBMS的,例如oracle、ms sql server 都很容易切换,但是如果转入cache,就像上了贼船,上去容易,下来难了。想后悔都没有机会。不是说绝对不能转换出来,而是很多困难。你没有失败的backup.
9.互联问题。现在健康档案互联,区域医疗信息化等,都是时代发展需要。懂行的人自己考虑一下其中难度,不懂行的人说了也是白说。
--------------
还有很多。
我是这样想:任何技术都是双刃剑,通常情况下,它的优点往往也是缺点。
根据自己的业务特点,合理选型。
从个人经验看,CACHE并不适合数据、流程、业务、逻辑等复杂多变的大型三甲医院。最起码不能作为主数据库。