SAP HANA列存储懒加载(SAP HANA Lazy Loading for column store):
SAP HANA对列表采用的是懒加载的机制.
SAP HANA 对行表采用的是完全加载的机制(fully load).
1.SAP HANA 数据库实例启动中把行表数据和定义为预加载的列表数据都加载到内存中,其余列表数据保存在硬盘中。
2.对未定义为预加载的列表的数据在第一次请求使用中加载到内存中。
3.SAP HANA 启动后,我们可以手动的把指定的列表数据加载到内存中,也可以把不再需要使用的列表数据从内存中卸载出来,释放内存空间。
图解列表的加载模式:
第一步:图一:当数据库启动完成后
列表EMP占用的内存为:0,Delta区和主存区占用的内存都是0.
第二步:图2:首先对列表进行查询操作SELECT * FROM EMP。然后刷新列表节点再查看列表统计信息。结果如下
通过上图可以看到相应的变化:列表EMP的数据被加载到内存中。
第三步:把数据从内存中卸载,释放内存空间。
第四步: 刷新列表运行时统计信息。
第五步: 只对EMP表的一个字段EMPNO进行查询操作。SELECT EMPNO FROM EMP。查询后查看统计信息。
可以发现不是使用的EMP表中的数据都被加载到Main Memory中。SAP HANA数据库实例只是把查询相关的数据加载到内存中。
图解行表的加载模式:
如下图行表的统计信息:可以看出SAP HANA的行表没有Delta区,可见Delta区是针对列表使用的。
同样对于Load 和 Unload行表也是不支持的,也是针对列表设计。