云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_gm3000中间件是什么_

小七 141 0

首先

SAP HANA View有多个性能改善相关的固有功能。这里介绍作为其功能之一的Dynamic Join的活用方法。

下面的博客介绍了同样具有SAP HANA View功能的Optimze Join Columns。Optimze Join Columns是以优化执行查询时使用的内存消耗量为目的的功能。

https://blogs.sap.com/2020/12/03/introduction-of-optimize-join-columns/

关于这里介绍的Dynamic Join,使用目的之一是优化内存消耗量。通过在查询内部处理的早期阶段执行统计处理,返利机器人怎么做,可以减少中间数据。但是,使用前后查询的执行结果可能会发生变化,物联网的应用,需要注意。

本博客将介绍活用方法和注意事项。通过说明,希望您能理解功能有效化的好处和次要影响。

功能概要

考虑使用以下sales表,业务用户计算素材(MATERIAL)的销售份额。sales表包含各地区(REGION)、国家(COUNTRY)的素材销售数据(SALES)。

为了满足此条件,制作以下SAP HANA View。

SAP HANA View的制作步骤

上述SAP HANA View中结合了两个Aggregation节点。点是最下面右侧的Aggregation节点(用3创建的Aggregation节点)中不包含MATERIAL的点。也就是说,这个节点总是输出特定地区、国家的总销售额(TOT SALES)。另外,这些Aggregation节点由两个组合列(REGION和COUNTRY)结合在一起。

使用该SAP HANA View计算每个国家的材料的销售份额。执行结果如下。

在该剧本中活用Dynamic Join。启用Dynamic Join的设定,构建SAP HANA View。

使用该SAP HANA View计算每个国家的材料的销售份额。执行结果如下。

此时,Dynamic Join的设置前后查询的执行结果没有变化。但是,内部处理在设定前后发生了变化。使用EXPLAIN PLAN语句比较设定前后的执行计划。

未设定Dynamic Join时的执行计划设置Dynamic Join时的执行计划

要点是没有设定Dynamic Join时,在结合处理后执行合计处理(上述红框内的处理)。

未设定Dynamic Join时,首先并行执行REGION、COUNTRY的合计处理和REGION、COUNTRY、MATERIAL的合计处理。之后分别执行COUNTRY、MATERIAL的合计处理。

与此相对,当设置Dynamic Join时,不执行结合处理后的合计处理。在合并处理之前,已经执行了不包含在REGION对象中的合计处理。

内部处理的不同在于组合列和查询选择列表中未包含的REGION是否是合计处理的对象。

Dynamic Join设定无效时,内部结合列(REGION和COUNTRY)隐含包含在JOIN节点以下节点的合计处理对象中。这不取决于组合列是否包含在选择列表中。因此,在这次的剧本中,大数据分析软件有哪些,需要在结合处理后从对象中除去REGION的合计处理的执行。

另一方面,启用Dynamic Join后,除了选择列表中不包含的REGION以外的合计处理将在查询处理的早期阶段执行。一般来说,合计处理的对象列越少,作为执行结果输出的记录数越少。因此,通过启用Dynamic Join,可以从记录数的角度削减中间数据。

说明了通过使用Dynamic Join,可以削减中间数据。另一方面,可能会对查询执行结果产生次要影响。

使用上一部分制作的SAP HANA View,物联网流量卡,计算各地区的素材的销售份额。在Dynamic Join设置前后,查询的执行结果如下所示。

未设定Dynamic Join时的查询执行结果设置了Dynamic Join时的查询执行结果

为了理解该执行结果的不同,获取设定前后的执行计划。

未设定Dynamic Join时的执行计划设置Dynamic Join时的执行计划

Dynamic Join设定无效时,如前半部分说明的那样,在合计处理执行时考虑不包含在选择列表中的COUNTRY。

首先,REGION、COUNTRY、MATERIAL的合计处理和REGION、COUNTRY的合计处理并行执行。之后,从对象中除去COUNTRY进行合计处理。

Dynamic Join设定有效时,在结合处理之前执行不包含COUNTRY的合计处理。之后,执行SALES SHARE的计算处理。

如上所述,通过启用Dynamic Join,淘客推广渠道,查询的执行结果可能会发生变化。如果要启用,需要充分验证执行结果是否符合意图。

前提条件

使用该功能的条件如下所示。要执行的查询必须满足这些。

At least one of the fields involved in the join condition is part of the client query.至少一个或多个组合列包含在查询选择列表中。

不满足该前提条件时,执行查询时会发生错误。

汇总

使用Dynamic Join时,可减少查询中包含的合计处理后的中间数据(记录数)。因此,可以期待通过削减资源消耗来提高性能。但是,使用后查询的执行结果可能会发生变化。这些和使用Optimze Join Columns时的要点基本相同。我想作为包含Join节点的SAP HANA View的执行时间大的情况的改善手段之一,请考虑Dynamic Join和Optimze Join Columns的使用。