今年的DTCC上感受到空喊口号的少了不少,实战案例多了一些,不过在这些实战案例里,注水情况也还是不少的。数据库国产化替代成功案例中,我们几乎都能看到:“国产化替代后,XX功能并发处理能力提升了3倍”、“XX批处理完结时间提高XX倍”等十分鼓舞人心的画面。
几年前,我参加一位老领导组织的一个数据库国产化替代闭门会,当时某央企研发部门的领导谈到核心系统去O,难度太大,他们尝试了很久,仍然没有突破,我观察到这位领导当时眉头紧蹙。而在我的演讲以“没有替不掉的数据库”这句话结束的时候,我看到了脸上的笑容。事后他专门和我讨论了这句话背后的逻辑。前阵子他兴奋地问我:“我最近参观了一些信创成果,看到很多系统国产化改造后,性能都大幅提升,是不是国产数据库已经进步到可以和Oracle掰掰手腕了?”。我说:“领导 ,你看到的是事实也不是事实,改造后某些模块确实性能提升了,但是那都是应用做了大量优化后的结果,国产数据库在里面的功劳可能是负的。”
不用质疑,我们在DTCC上听到的这些提升,和这位领导看到的案例,都是真实的案例,但是用在对比国产数据库对比O记的性能提升并不合理。因为这些提升并非是在不同数据库上对两个一模一样的应用做的严格对比,对比的是系统迁移改造前后的性能差异。为了能让应用在性能、可靠性都要差一些的国产数据库上跑得很好,金融、证券、运营商等的核心业务系统都是投入巨资进行改造的,新老系统完全是两个不同的系统了,所以用某些场景来为国产数据库的性能背书,是极不科学的。说得难听点,是有些贪天之功了。这些原本是ISV和用户共同努力的结果,被国产数据库抄来给自己贴金了。
前两年我曾经组织过一次某央企核心系统与O记的对比测试,测试方案设计为响应时间低于O记的1.5倍认为符合,低于2倍认为达标。300多个场景,参测的国产数据库的首轮测试达标率不到1/3,经过针对性优化后的达标率超过90%,符合率达到50%,无一用例实现了超越。当时采取的优化方案无外乎加大并发和改写SQL,甚至部分场景必须改写应用才能达标。可能我测试的场景不是特别典型,所以让国产数据库的成绩如此不堪,在某些场景中,国产数据库应该还是有机会超越O记的。
以前也曾经听某数据库原厂的人说他们的测试成绩,首先自己的测试用例是精心优化的,而O记的场景则明知不优化也不去优化它,这样就能测出惊爆的效果出来。数据库本身就是要在生产环境中长期使用的,玩这些数字游戏无助于提高国产数据库的能力,因此还是少用吧。