汇总具有13亿条记录的表的基本方法。

2020-09-03 19:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个Sap表MARD,记录...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个Sap表MARD,记录数为13亿。

这里的数据来自站点,文章和位置(lgort)级别

Sloc是最低的粒度列。

所以我想为我当前正在使用该查询的每个站点获取一条记录

选择

 site,matnr,min(lgort)sloc

 来自MARD

 其中lgort <>'1000'; 

此查询大约需要20分钟才能执行,并消耗200GB的内存。

除了聚合整个数据集之外,还有没有更好或更快速的方法来从表中获取单个站点,逐条显示的行?

3条回答
CPLASF-自律
2020-09-03 20:14

对此应该有一个GROUP BY子句。 任何聚合都应使用GROUP BY将数据正确分组在一起。

选择
 site,matnr,min(lgort)sloc
 来自MARD
 lgort <>'1000'
 GROUP BY站点,matnr; 

进行聚合时,我建议您将这种逻辑类型放入计算视图中,以便从该引擎中受益。

最后,您可能需要考虑在现场进行分区,也可以考虑在matnr进行分区。 请记住,如果该表没有分区,HANA的每个表限制为20亿行。 如果已分区,则每个分区的行数限制为20亿。 参见 SAP注释2212518

一周热门 更多>