点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我们有以下设置:
我们在ORACLE表中存储了大量数据。 我们通过使用SAP HANA中的虚拟表查询所需的信息。 较大的SELECT最多需要两个小时,因此我们需要减少此时间。 ORACLE服务器有许多未使用的资源。 当我们通过PARALLEL EXECUTION一次查询十个不同的表时,总时间仅比十个表中最大的一个表所需的时间短。
不可能更改ORACLE服务器的配置,因此不能选择"智能数据集成"。 此外,表内容会一次更改整个表,因此增量将始终包含所有内容。
问题是,当我们只需要其中一个大表的信息时,我们在双方上都浪费了很多时间。 ORACLE服务器可以更快地处理请求,HANA由于缺少要处理的数据而处于空闲状态。 我们尝试了以下方法:
- 在SELECT语句中使用过滤器,并在并行执行中多次查询ORACLE表:
由于无法多次在同一表中并行写入,因此失败。 - 使用ORACLE提示 SELECT/* PARALLEL(n)*/* FROM表名:
在将该语句发送到ORACLE服务器之前,该注释似乎已被丢弃。 - 使用多个负载表绕过方法1的限制,然后在目标表中合并数据。
是的,这是一种解决方法。 但是您在联合上浪费了很多时间,无法使用临时表,因此我们将不得不添加数十个表定义。
还有其他方法可以控制HANA方面的程度或并行性吗?
预先感谢您的想法,
最大
使用SDA,您可以在系统之间建立单个连接。 HANA会尽其所能快速返回数据,但它仍然只是与Oracle的1个客户端连接。
当然,您可以使用SDI将数据复制到HANA中,而完全避免远程查询 。
如果不可能,则可以结合使用SDA和SDI。 您具有远程对象的SDA定义,请保持不变。 使用SDI创建一个利用SDI并行性质的对象。
SDI中的任务分区
""要提高大型源对象的性能,请考虑 使用任务分区选项。 分割 允许SAP HANA读取 ,处理和提交
让SDI指向SDA对象,而不是本机Oracle连接。沿着对数据和表布局有意义的线配置分区。然后 使用SDI接口通过SQL获取数据。
当HANA看到带有分区的SDI容器时,它将尝试为定义中的每个分区打开一个新连接,从而为您提供并行执行
Mark
我感到很痛苦。
在这种情况下使用并行性的最简单方法是在Oracle上创建视图 使用并行提示的服务器,并通过SDA读取这些提示。
一周热门 更多>