SAP HANA 管理员 - 数据压缩


使用 SAP 列存储表,您最多可以执行 11 次数据压缩,从而形成一种节省成本的解决方案,可以在 HANA 数据库中存储更多数据。列存储表还提供更快的数据访问、搜索和复杂计算。

未压缩数据大小与压缩数据大小的比率称为压缩因子。压缩后的表大小是表在SAP HANA数据库主内存中所占用的大小。

检查列表的压缩

使用 SAP HANA Studio,您可以了解列存储表的压缩状态以及压缩因子。要查找压缩详细信息,您需要首先将表加载到内存中。

要将表加载到 SAP HANA 内存中,您应该具有 -

  • 系统权限- 表 ADMIN

  • 对象权限- 表或表所在架构的更新

柱形表

您还可以使用 SQL 命令加载表。打开 SQL 控制台并执行以下语句 -

LOAD <table_name>  
UNLOAD <table_name>

请注意,当您加载表时,它会将完整数据和增量存储加载到 SAP HANA 系统的主内存中。

要执行数据压缩,请运行以下SQL命令来检查数据压缩属性。

SELECT SCHEMA_NAME, TABLE_NAME, COLUMN_NAME, COMPRESSION_TYPE, LOADED from  
PUBLIC.M_CS_COLUMNS where SCHEMA_NAME = '<your_schema>' and TABLE_NAME = '<your_table>' 

命令检查

您可以在“结果”选项卡中检查输出。

结果

要检查表的压缩率,您可以导航到表定义。转到运行时信息。

要查看压缩比,请转到“列”选项卡。您可以在“Main Size Compression Ratio [%]”列中看到压缩率。

比率

在 SAP HANA 中手动压缩表

还可以通过执行以下 SQL 语句来手动压缩 SAP HANA 系统中的表。

UPDATE "table_name" WITH PARAMETERS ('OPTIMIZE_COMPRESSION' = 'YES') 

这导致决定是否需要压缩或者是否可以优化现有压缩。在这种场景下,HANA系统使用最合适的压缩算法。

压缩表

当您运行上述 SQL 命令时,压缩状态保持不变。您还可以使用以下 SQL 状态强制数据库重新评估压缩 -

UPDATE "AA_HANA11"."SHOP_FACTS" WITH PARAMETERS ('OPTIMIZE_COMPRESSION' = 'FORCE')

SQL状态