本文来自于对Which is Faster HANA or Oracle 12C?的阅读笔记,列举了其中的要点。并不代表我的观点。

简介

SAP声称HANA是最快的数据库,因此SAP的新ERP系统S4不再支持Oracle

Oracle 12c的一个新功能是对于同一表,可以在行式和列式间转换

SAP想让用户认为HANA是独特的技术,不过在这篇文章中,可以看到内存计算和列式存储都不是SAP独有的技术

硬件速度和数据库设计的混淆

HANA将两个不同的概念混淆到一起: 
1. 硬件层面,HANA需要将数据加载到内存 
2. 数据库设计层面,HANA是基于列式的数据库

这种混淆其实在SAP的ERP就已经用到了,而且运用得很成功,SAP认为SAP自己的ERP可以更好的集成应用,集成的风险更小。

SAP ERP的集成是在水平的应用层面,而HANA是在垂直层面,直到数据库层

SAP希望用户迁移到HANA的一个原因是,和以前将数据库作为数据储存不同,SAP已经将应用逻辑下放到数据库。

PS. 不过我认为这些接口会对其它数据库开放的

HANA的真正机会

曾经认为HANA的真正机会是将ERP和其它SAP应用都放在HANA上,然后分析引擎可以运行在相同的硬件上,集成和转换也不再需要。

但是非SAP的应用怎么办,它们无法运行在HANA上,它们不需要集成了吗?

另外, HANA非常昂贵,而且目前HANA也支持一小部分SAP的应用

西部最快的数据库?

看这标题,作者还挺幽默

HANA明显不象SAP所说的那样,是速度的冠军。一个重要的原因或弱点即HANA是基于列的数据库,这对于非分析型数据库是一个不正确的设计。尽管SAP声称是,但从计算机科学的角度来看,它不是。(SAP有篇论文,专门讲述列式数据库性能没有问题)

对于交易系统的插入,删除和更新,列式数据库要比行式数据库慢

关于速度的争论

Oracle的John Soat在福布斯上发表的文章对于HANA的速度做了反击,其中很重要的一点是HANA没有发布过交易处理的性能指标。也许是做了但还不够好吧。

Oracle 12c的数据双模式

Oracle 12c可以将数据同时以行式和列式在内存中存在,这时一个非常重要的优势。除了纯分析操作,Oracle的灵活设计在性能上完胜HANA。 
SAP认为Oracle的内存技术不成熟,同时HANA有7000个用户,不过大部分的用户并没有真正使用HANA。

结论

Oracle 12c 内存列式存储的出现,使SAP将用户迁移到HANA的理由不再充分。

SAP作为应用的厂商,现在将数据层推向用户,结果如何,只有拭目以待了。

下面这段话其实是我最欣赏的:

在Mountain View的计算机历史博物馆,有一个展览说,从前,软件是和硬件绑定的,那时软件还不是一个产业,IBM发布的程序只能跑在IBM的硬件上。软件不单收费,在软件层面也不存在竞争。

我们现在所知的软件行业,实际上是在软硬件解耦之后,即美国的反托拉斯法( US enforcing anti-trust legislation )针对专属软件和硬件厂商的要求。而HANA作为应用和数据库耦合,由一个厂商控制,使我们又回到了软件最初的时代。 
PS. Oracle的Exadata也是软件和硬件的结合,但是Oracle并没有要求数据库只能跑在Exadata上

结论就是: 
* 只有列式数据库才有未来是不对的 
* 只有SAP才能开发出高性能的数据库如HANA也是不对的

版权声明:本文为博主原创文章,未经博主允许不得转载。
*******************************************************************************************

SAP HANA是一个全新设计的内存数据库系统,他即支持传统的行式存储也支持列式存储。HANA数据库具有很高的性能、并发能力和可扩展性。HANA即可以支持OLTP应用也可以支持OLAP系统。

我们都知道,制约数据库系统性能提升的关键瓶颈是I/O。为了解决这个问题,Oracle公司推出了Exadata,通过在存储层内置智能存储软件优化数据库层和存储层之间的I/O处理和传输。而SAP HANA数据库则另辟方向,充分利用多核处理器架构和计算机主存成本降低的趋势,在内存中存放数据,而传统的磁盘存储系统只是作为“持久层”,防止由于故障导致内存数据丢失。对于HANA来说,相关数据位于内存中,这样在访问数据时无需物理磁盘I/O操作,因此也就不存在磁盘“I/O”的瓶颈问题了。在这里并不会、也不想讨论SAP HANA和Oracle Exadata两种技术的优劣,我想这两种技术代表了两种方向,最终还需要由市场和客户评判。

由于目前SAP HANA的公开资料很少,个人觉得很不利于产品的推广和使用,一个产品只有了解、使用的人多了,建立起很好的“生态系统”才能得到发展。对于数据库这样的基础平台软件更是如此。技术人员了解和学习一个产品都喜欢先装上它,然后使用它。本文将向SAP HANA的初学者介绍如何安装它。需要注意的是:本文的目的是帮助打算学习SAP数据库的人能够搭建自己的学习环境而编写的,并不是针对实际生产环境

*********************************************************************************************************************************************

HANA 与 Oracle 12c哪一个更快的更多相关文章

  1. 浅析Oracle 12c中Data Guard新特性

    浅析Oracle 12c中Data Guard新特性   写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从 ...

  2. 如何在Oracle 12C中Drop/Truncate多个分区 (Doc ID 1482264.1)

    How to Drop/Truncate Multiple Partitions in Oracle 12C (Doc ID 1482264.1) APPLIES TO: Oracle Databas ...

  3. 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...

  4. Oracle 12c In Memory Option初探

    前情提要: Oracle OpenWorld 2013中Larry Ellison爆料的Oracle新特性:Oracle In Memory Database Option 1. 这个新特性将随着12 ...

  5. 让DB2跑得更快——DB2内部解析与性能优化

    让DB2跑得更快——DB2内部解析与性能优化 (DB2数据库领域的精彩强音,DB2技巧精髓的热心分享,资深数据库专家牛新庄.干毅民.成孜论.唐志刚联袂推荐!)  洪烨著 2013年10月出版 定价:7 ...

  6. 比Redis更快:Berkeley DB面面观

    比Redis更快:Berkeley DB面面观 Redis很火,最近大家用的多.从两年前开始,Memcached转向Redis逐渐成为潮流:而Berkeley DB可能很多朋友还很陌生,首先,我们简单 ...

  7. Windows 下安装 Oracle 12c 教程

    原文 Windows 下安装 Oracle 12c 教程 申明:本文原作者:Jmq   本文给大家带来的是 Oracle 12C 的安装教程. 1.准备 1.1 下载 Oracle 12c 安装程序 ...

  8. [20190423]那个更快的疑问3.txt

    [20190423]那个更快的疑问3.txt --//前一阵子,做了11g在单表单条记录唯一索引扫描的测试,摘要如下:--//参考链接:http://blog.itpub.net/267265/vie ...

  9. Oracle 12c用户和安全管理

    前言: Oracle 12c的多租户(multitenant)环境与SQL Server的架构非常相似,CDB$ROOT类似于master.PDB$SEED类似于model.各个pluggable d ...

随机推荐

  1. Linux基础命令---显示登录用户logname

    logname 显示当前登录的用户名称.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法        logname   2 ...

  2. 转:MD5辅助类

    public class MD5Helper { private static MD5 md5 = new MD5CryptoServiceProvider(); private static str ...

  3. GUI常用对话框5

    %输入对话框 name = inputdlg('请输入姓名','实例'); ret = inputdlg({'请输入姓名','请输入性别'},'实例') %一个输入表中多行输入 %留言对话框 info ...

  4. python内置函数的简单使用和介绍

    """内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html ""&quo ...

  5. <转>jmeter(八)断言

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  6. 离开(切换)当前页面时改变页面title

    document.addEventListener('visibilitychange', function () { if (document.visibilityState == 'hidden' ...

  7. [重要] Django 多条件多表查询实例问题

    当时想做一个多条件查询,但是对于要查询的信息,是分布在不同的表里,这就涉及到了多表查询问题. DjangoBook里提到了一些查询的方式,但是不够全面,就去百度搜了下. 当去网上百度搜多表查询,或多条 ...

  8. 在static的function静态函数中访问成员变量

    class A{ private $url; public function __construct(){ $this->url = $_SERVER['PATCH_INFO']; } publ ...

  9. Ajax解决csrf_token的不同方式

    ajax发送csrf_token的不同方式: 方式一: 在ajax发送之前,做好处理,用到了beforeSend方法,把csrf_token写入到Header头内,csrf_token去jquery. ...

  10. mysql 8.0 Druid连接时调用getServerCharset报空指针异常解决方法

    类似错误信息如下: 16:52:01.163 [Druid-ConnectionPool-Create-1641320886] ERROR com.alibaba.druid.pool.DruidDa ...