sqlserver 将a列数据插入b列_内存数据库SAP HANA的不可告人的秘密

  • 将文件保存在RAM或磁盘上,哪个更好?这取决于……

  • 按原样写文件和压缩文件哪个更好?这取决于……

  • 当一行发生更改时修改文件还是保留历史记录,哪种方法更好?这取决于……

  • 以A或B格式存储数据,哪种更好?这取决于……

a9cb84acd9a9817e7cca01b72ae262d4.png

如何处理“视情况而定”

简单的方法是两者都做,例如以柱状和行状两种格式存储数据。通过这种方式,用户可以访问其中之一,或者其他更有意义的。当然,这个选择是有代价的。在这种情况下,数据需要存储两次——将优点和缺点结合起来。

更好的方法是以某种方式组合特性,这样一方面的缺点就可以由另一种技术弥补(反之亦然)。优点和缺点的结合。这就是SAP HANA的秘密。不只是内存中的能力,不列存储,不压缩;而是这两者的巧妙结合。在内存空间中,没有其他数据库供应商能够达到这种程度,主要是出于历史原因。

为什么?享受这2分钟的视频。当然,用我们今天的知识回顾过去是不公平的,但是这个视频仍然很有趣。

主要的论点是你不能把所有的事情都记在脑子里,这是不可能的。如果我们把这句话视为理所当然,那么压缩可能是一条出路。假设1TB的RAM服务器太贵,如果数据可以压缩10倍,那么RAM需求将下降到更便宜的128GB RAM计算机。压缩有缺点,有什么技术可以绕过它?

SAP HANA使用四种技术来实现全利无弊的组合:

-Memory

f7ca36b55c0cceb3ed81a73ebadda1a3.png

Columnar Storage

bc5a9e67f3e3297b9bf0fdadf9260059.png

Compression

c08f93406f9785412f6b4ef8e4c324db.png

Insert-Only

f58159de277a70d4081d7523493072fe.png

每种技术的优缺点

内存

基本思想是内存比磁盘快得多。实际上,这种差别比人们通常看到的要大得多。现代CPU的内存带宽为20g字节/秒或更高,单个磁盘的ssd带宽约为550MByte/秒,硬盘驱动器的带宽约为180MByte/秒,两者相差36和110倍。如果一个程序频繁地使用相同的内存,它会被缓存在CPU的L1或L2缓存中,从而将内存带宽提高10倍。相反,180MB/秒的磁盘速度仅适用于顺序读访问,随机访问对磁盘系统的性能要差得多,而对RAM没有负面影响,对SDDs影响很小。

内存的缺点是内存芯片本身的成本(截至2017年,RAM的成本为7美元/GByte,而磁盘的成本为0.05美元/GByte)和硬件平台需要的成本,以便处理尽可能多的内存。

从绝对数字上看,1TB的内存将是7000美元——可以负担得起。

那么内存计算的优点和缺点是什么呢?

优点:

  • 更新数据快

  • 插入数据很快

  • 阅读是快速

缺点:

  • 当电力耗尽时,所有的数据也随之耗尽

  • 128GB的服务器便宜,1TB的服务器便宜,64TB的服务器贵,1000TB的服务器根本不存在(比如这里)

压缩

压缩的思想很简单:单个CPU比磁盘快得多,因此压缩数据以减少数据量是有益的,只要它的开销不是太大。因此,每个主要的数据库都支持压缩。但它不是很流行,因为压缩数据库块和解压缩它需要付出代价。最明显的成本开销是在数据库块内更新数据时。必须解压数据库块,将更改的数据合并到其中,然后必须再次压缩该块。

优点:

  • 减少所需的大小

缺点:

  • 插入需要更多的CPU能力

  • 读需要更多的CPU能力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值