HANA数据库为何如此之快

原文标题是How SAP HANA Is Such a Fast Database,不过作者的观点是HANA的快主要源自硬件的发展,而且HANA并非适合所有的应用场景。

不过我关注的恰好是结论之外的部分。

数据访问模式的变化

存储硬件的提升,从物理磁盘到SSD, 内存,相应的数据库查询方式也发生了变化。

当数据库使用传统的物理磁盘,如果在一个具有10列的表中读取3列,你也必须读取全部10列。

如果表为100M,100万行,那么必须读取整个表来完成查询,在涉及多表Join时,情况更加严重。

如果数据库存储在SSD或内存这些随机访问型存储上,你需要3列,就只需读取3列。

数据交换的消除

传统的存于磁盘的数据库需要花费大量的时间来进行Swapping,即将数据读入缓存,处理后随后又将数据写回磁盘,周而复始,生生不息, :)。

而内存数据库则消除了这种数据交换(Swapping),因为所有的数据都在内存中操作,需要存储的唯一目的就是为了数据持久化和备份。

其实这解释了即使将数据全部Cache到内存,仍然不如内存数据库快的原因,无论是列式数据库如HANA, 还是行式数据库如TimesTen。

结论

列式数据库有速度的优势,但不是万能的优势,尽管SAP希望将HANA作为一体适用的平台,不过One Size Does Not Fit All, 此数据库的原理来说,HANA非常适合BW这样的分析性应用,对于ERP这样的OLTP的应用,我们还是拭目以待,看看S/4 HANA的作为吧。

参考

时间: 2024-11-03 21:07:39

HANA数据库为何如此之快的相关文章

HANA 数据库License的查看申请及安装

HANA 数据库License的申请及安装 HANA安装完毕后有90天的期限让你申请License,过期后系统无法登录,表现为系统无法登录,数据库被锁定,此时HANA Studio中各个选项均为灰色,但安装License为可操作的.如果系统已无法登录,请在SAP 网站上申请License,并用HANA Studio导入License.以下为详细步骤. 系统可以登录的情况下,(已安装完系统,但未导入License时) 登入SAP GUI使用T-code:/ndb12 许可证查看liecense 没

使用JDBC操作SAP云平台上的HANA数据库

本文假设您对JDBC(Java Database Connectivity)有最基本的了解.您也可以将其同ADBC(ABAP Database Connectivity)做对比,细节请参考我的博客ADBC and JDBC 这篇文章分为两部分,第一部分内容: 介绍如何在SAP Cloud Platform(云平台)上创建一个HANA数据库实例 开发一个Java应用,部署到SAP云平台上.该Java应用使用JDBC操作同样处于SAP云平台上的HANA数据库. 第二部分内容: 开发一个Java应用,

使用Eclipse连接SAP云平台上的HANA数据库实例

SAP云平台(Cloud Platform)上的HANA数据库实例有两种方式访问: 1. 通过SAP云平台的基于网页版的Development Tool:SAP HANA Web-Based Development Workbench 2. 通过Eclipse配合Cloud Connector直接访问 在Eclipse里切换到Data Source Explorer视图,创建一个新的Connection Profile:Profile类型选择为Generic JDBC:Properties属性如

C#通过 ODBC读取HANA数据库

前提需要安装HANA Windows Client ODBC测试数据库连接 在CMD中用odbcad32.exe打开ODBC驱动管理程序 配置完成后,测试连接成功,就可以读取HANA数据库了 使用c#读取HANA数据库 public class HanaHelp { public HanaHelp() { } public OdbcConnection getConnection() { String connStr = "Driver={H00};ServerNode=0.0.0.0:xx;u

HANA数据库备份查看和还原

1.检查trace文件 cat backup.log |grep "/usr/sap/HEQ/HDB00/backup/data/" 2.通过studio检查catalog 3.查看视图M_BACKUP_CATALOG   ---complete data backup/incremental data backup/differential data backup select * from "M_BACKUP_CATALOG" where  ENTRY_TYPE

【Zabbix】HANA数据库密码重置

数据库版本:2.0 SPS 00, 1.第一个会话切换到hana用户后,执行以下命令: [email protected]:/usr/sap/HAT/HDB00> HDB stop [email protected]:/usr/sap/HAT/HDB00> hdbenv.sh [email protected]:/usr/sap/HAT/HDB00> hdbnameserver 2.新开第二个会话,执行以下命令: [email protected]:/usr/sap/HAT/HDB00&

【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子查询 例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name='hechunyang'); 子查询在MySQL5.5版本里,内部执行计划器是这样执行的:先查外表再匹配内表,而不是先查内表t2,当外表的数据很大时,查询速度会非常慢.在Mari

C#通过ODBC查询HANA数据库数据

创建HANA的ODBC数据库连接. 默认在控制面板-->管理工具-->数据源(ODBC) 提示:如果系统是64位的,要运行 C:\Windows\SysWOW64\odbcad32.exe 中的32位的ODBC进行配置. 配置好ODBC之后,C#项目中使用:OdbcConnection连接 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /// <summary> /// 根据SQL语句查

为什么数据库索引查询会快

一.使用索引的好处 创建索引可以大大提高系统的性能.第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性.第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因.第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义.第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间.第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能. 二.索引的原理 数据在磁盘上是以块的形式存储的.为确保对磁盘操作的原子性,访问数据的时候