公众号:SAP Technical
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

第一:加速数据的访问。

1.把数据保存在内存中,(Using main memoryas the data store)通过下图我们可以看到内存的访问速度比磁盘快1,000,000倍,传统磁盘读取是5毫秒,内存读取是5纳秒。比SSD和闪存快1000倍。虽然寄存器和Cache的读取数据的速度比内存快,但在实际的数据处理中它们的使用是有限的。

根据计算机组成原理我们知道数据是从 磁盘----> 通过数据总线和控制器(RAID,I/O hub等)--->内存--->CPU Cache --->CPU进行数据处理(CPU寄存器)。

内存是直接与CPU cache进行数据传输的,数据传输速度远远大于磁盘。所以与数据保存在磁盘中相比,数据保存在内存中可以大大的提高数据库在存取数据的时间的性能优势。在传统的数据库中。由于内存存储的数据有易失性,系统掉电或者是重启内存中的数据就会丢失,针对这个SAP HAHA有一个后台的异步进程savepoint(Data persistence)定时的把内存数据存储到磁盘中。把数据存储在内存中解决的传统数据库在磁盘I/O读取的性能瓶颈,但是在出现了新的性能瓶颈是把内存中的数据加载到CPU Cache中,SAP HANA采取多处理器并发处理。

数据持久化(Data persistence)

2.硬件方面:服务器采用多核架构(每个刀片8 x 8 核心 CPU)多刀片大规模并行扩展,刀片服务器价格低廉,采用64 位地址空间 — 单台服务器容量为2 TB ,100 GB / 秒数据吞吐量,价格迅速下降,性能迅速提升。

3.软件方面:数据存储可以选择行存储或者是列存储,同时对数据进行压缩。

第二:把数据分开处理。

内存本地化:把大数据量和计算量分散到不同处理器

并行处理:不同的服务器之间也共享同一组数据

容灾性:单一的服务器的DOWN机将不影响任何计算

第三:最小化数据传输。(Minimizing datamovement)

1.压缩数据。(compress data)

尽管今天的内存容量允许把大量的数据存储在内存中,把数据进行压缩的目的没有直接用来提高性能,但把内存数据进行压缩还是可取的,它可以最大限度的减少数据从内存传输到CPU cache中。SAP HANA 采用数据字典的方法对数据进行压缩,用整数来代表相应的文本。数据库可以压缩数据和减少数据的传输。

2.把应用逻辑和计算由应用层转移到数据库层。(Pushingapplication logic to the database)

传统数据库中,一个应用程序在处理应用逻辑数据时,先把数据从数据库读出来,然后再进行相应的计算处理,最后处理后的数据写回数据库中。在数据库和应用程序传输数据包括在一个网络通信,那么网络资源的开销,延时,传输速率及及最大吞吐量都对它们之间的通信会产生限制。如果数据库能够执行计算和应用逻辑,不需要将数据发送回应用程序甚至可能减少数据交换的需要。这最大限度地减少传输的数据量。

【HANA系列】SAP HANA的特点总结的更多相关文章

  1. 【SAP HANA】SAP HANA开篇(1)

    有幸当前工作能够接触到SAP S/4,能够接触到史上无敌的HANA内存数据库.HANA的技术我就不多讲了,感兴趣的人可以去百度一下.当然,有人想在本机安装HANA来学习,但前提是你得有128G内存以上 ...

  2. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  3. 学习SAP HANA SQL

      学习SAP HANA SQL 语句(创建 EMP,DEPT,BONUS 和 SALGRADE测试表)--像学Oracle一样学习SAP HANA 标签: sap测试oraclesqltableda ...

  4. SAP HANA学习资料大全[非常完善的学习资料汇总]

    Check out this SDN blog if you plan to write HANA Certification exam http://scn.sap.com/community/ha ...

  5. 1950261 - SAP HANA Database Backup Policy Recommendations and Regular Backup Script

    =====Symptom For SAP Business One, version for SAP HANA users, SAP HANA provides a range of database ...

  6. 【转】SAP HANA学习资料大全[非常完善的学习资料汇总]

    Check out this SDN blog if you plan to write HANA Certification exam http://scn.sap.com/community/ha ...

  7. 利用Veeam保护SAP HANA数据库

    利用Veeam保护SAP HANA数据库 前言 针对越来越多的SAP HANA备份需求,我们Team翻译.整理.借鉴了Veeam 的SAP HANA 大神 Clemens Zerbe 和 Ali Sa ...

  8. SAP HANA学习资料大全 Simple Finane + Simple Logisitic [非常完善的学习资料汇总]

    Check out this SDN blog if you plan to write HANA Certification exam http://scn.sap.com/community/ha ...

  9. SAP NOTE 1999997 - FAQ: SAP HANA Memory

    Symptom You have questions related to the SAP HANA memory. You experience a high memory utilization ...

  10. SAP HANA企业级培训系列课程<第一部分>

    No. 课程 备注 1 HANA概述 HANA 特点 2 HANA Server & Studio & Client 认识HANA Server \Client\ Studio, 熟悉 ...

随机推荐

  1. Dijkstra经典算法注意点

    Dijkstra经典算法注意点 前言 迪杰斯特拉算法,经典模板如下: void dij(int s) { for(int i=1; i<=n; i++) dis[i]=road[s][i]; v ...

  2. 深入ArrayList看fast-fail机制

    fail-fast机制简介 什么是fail-fast fail-fast 机制是java集合(Collection)中的一种错误机制.它只能被用来检测错误,因为JDK并不保证fail-fast机制一定 ...

  3. Vue组件定义

    简介 组件是可复用的 Vue 实例. 本质上是一个对象,该对象包含data.computed.watch.methods.filters以及生命周期钩子等成员属性. 组件结构: { data(){ r ...

  4. ecshop 2.7 PC 微信扫描支付配置教程

    在ecshop支付过程中,有些是没有微信支付的,需要自己添加微信支付的模块,那么怎么添加呢,添加过程需要调试,本人花了很长时间才调试成功的pc微信扫描支付, 1,数据库添加微信支付方模块 2,后台设置 ...

  5. 更新SVN时提示要清理,但清理失败,乱码得解决方案

    问题情况如图: 解决办法: 依托工具——sqlite3, 首先在项目根目录下找到.svn文件夹,将其中的wc.db复制到工具所在路径. 如果找不到.svn,需要把隐藏文件选项勾去. 路径如图: 此时, ...

  6. sqli-5&6

    第五关 Double Injection - Single Quotes - String (双注入GET单引号字符型注入) 1.发现前几关的方法都不能用了,要么报错(没有其他有关信息.要么什么也不出 ...

  7. javaweb各种框架组合案例(七):springboot+jdbcTemplete+通用dao+restful

    一.介绍 1.springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间 ...

  8. mysql优化-覆盖索引查询,join

    1 原始sql: SELECT a.* FROM event_data a WHERE a.receive_time >= '2018-03-28 00:00:00' AND a.receive ...

  9. Springboot 默认cache

    1:Springboot 默认缓存为ConcurrentMapCacheManager(spring-context) 2:再启动类上开启缓存 @SpringBootApplication //相当于 ...

  10. JVM加载class文件原理

    装载的概念 所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程. Java中类装载器装载类到虚拟机 在Java中,类装载器把一个类装入Ja ...