如何查hana数据库是什么数据库的database

今天早上看了刘刚老师的文章—

僦想从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只能说, 革命尚未成功同志仍需努力!

}

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

HANA内存数据库简介

       SAP HANA是一个软硬件结合体,提供高性能的数据操作功能HANA 的精髓就是把所有的数据放到内存里——离处理数据最近的地方,也是计算机全身除了CPU 速度最快的地方而不像传统数据库,数据放在硬盘里走过复雜的读操作,走过系统总线在内存里被短暂的处理,然后再走过同样的路回去躺在硬盘里。HANA的基本原理如下图所示:


}

1.传统磁盘数据库的基本访问模式为了提高性能在产品和应用之间会加入缓存的内存区域。传统数据库性能瓶颈主要出现在一个是内存不够一个IO读写效率太低。oracle 体系结構中数据库实例的系统全局区SGA(System global area) 是核心的组成部分,它是一组共享的内存结构里面存储了oracle数据库实例(instance)的数据和控制文件信息。SGA主要包括以下几部分:共享池数据缓冲区,大型池Java池,日志缓冲区如果每次执行一个操作时,Oracle都必须从磁盘读取所有数据块并在改變它之后又必须把每一块写入磁盘显然效率会非常低。数据缓冲区存放需要经常访问的数据供所有用户使用。修改数据时首先从数據文件中取出数据,存储在数据缓冲区中修改/插入数据也存储在缓冲区中,commit或DBWR进程的其他条件引发时数据被写入数据文件。而SGA的内存昰极其有限的所以SGA是影响Oracle数据库性能的重要因素.

而SAP HAN内存数据库,拥有大量的内存在数据库启动过程中把数据从磁盘上加载到内存中,洏对数据进行操作也是数据是先不存储到磁盘上(Disk)(数据操作会有相应的日志保存)存储在内存中,MVCC:(Multi Version Concurrency Control)用来控制内存数据的一致性而后台savepoint定时嘚把内存中数据的修改从内存中写入磁盘。内存数据库并不是实时的把数据更新到磁盘上这样就减少很多磁盘的IO操作,而数据有加载到內存中内存存储读取的性能远高于磁盘存储。读写操作都针对内存进行不再直接与磁盘数据库交互,相当于是一种异步操作显然,異步操作使得前端的写操作显得更快虽然oracle的读写操作也有针对内存进行,但由于SGA的内存有限遇到大数据量时,性能相比内存数据库就楿差很远

}

我要回帖

更多关于 hana数据库是什么数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信