就想从oracle dba的角度来谈谈我对HANA数据库的看法。

作为一个oracle的dba我对oracle的产品有一定的了解,但是HANA我是刚学,有什么不对的地方,大家可以指出来。

下面开始:

    从现在数据库的发展来看,现在最大的性能瓶颈就是:大量的数据需要从磁盘读取到计算单元。从这个点来说,SAP和Oracle想法都是一样的,也就是在计算时,最大限度的减少磁盘IO。

SAP的做法是将数据压缩后直接加载到内存中,这样就在计算时跳过了磁盘IO,这个就是HANA数据库的技术。

Oracle的做法则是在存储层做了大量创新,比如加入SSD缓存,使用智能扫描和存储索引,混合数据压缩等技术,来大量减少磁盘IO,这就是Exadata所做的。

相比起现在的磁盘数据库来说,两者都有相当好的性能提升,oracle Exadata据说有100-1000x的提升,HANA更是据说有上万倍的性能提升。但是从原理上来说,HANA因为在计算时直接跳过的IO层,而Exadata在计算时仍然需要从磁盘加载数据,所以性能会更好。

但是是不是HANA数据库前途就一片光明?至少在我看来,HANA还有以下两个挑战:

1.对OLTP应用的支持,虽然说HANA号称能支持OLTP应用,刘刚老师也说了OLTP应用能跑在HANA上,但是我仍然觉得维护大并发OLTP系统需要的事务和锁机制对HANA来说仍然是个挑战,而这个正是oracle的强项。所以Exadata能同时对OLTP和OLAP提供支持这个确实有一定道理,而HANA现在用的最多的还是在OLAP的场景下。

2.HANA数据库是基于列存储的内存数据库,据说Oracle会在2015年推出的12.1c也会是基于列存储的内存数据库。如果这两年HANA不尽快占用市场 发展壮大,Oracle推出类似技术的数据库之后,以现在oracle的市场占用率,客户可能更愿意升级数据库,而不是迁移到HANA数据库上,毕竟迁移数据库也是一项耗时耗钱的工作。

总的来说我认为hana的技术是优秀的,但是想要挑战oracle,只能说, 革命尚未成功,同志仍需努力!


转载于:https://blog.51cto.com/rainzl/1264512