虚拟表上的WHERE参数

2020-09-08 13:37发布

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

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


嗨,

在虚拟表上执行AMDP方法时遇到问题。

我们在远程Oracle数据库中有表。 这些表在HANA中作为虚拟表添加,并且可以正常工作。 如下所示的SQL语句返回请求的数据。

 tab =选择一,二,三
       来自" abc"。" vt_oracle"
       在哪里='xxx'

但是选择整个表需要花费很长时间,因为将要同时查询其他20个系统,每个表最多有2.5亿个条目。 我们只需要数据的一个子集,因此我在该函数中添加了方法参数x和y以在另一个WHERE子句中使用,并以较小的部分查询表。

 tab =选择一,二,三
       来自" abc"。" vt_oracle"
       在哪里='xxx'
         和x和y之间的两个
 

在第一个选择语句中,WHERE one ='xxx'子句在第二个条件中被下推到Oracle数据库,而WHERE子句的两个部分都没有下推,并且查询花费了更多的时间来执行。/p>

似乎无法将参数下推到远程源。 我有办法解决这个问题吗?

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

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


嗨,

在虚拟表上执行AMDP方法时遇到问题。

我们在远程Oracle数据库中有表。 这些表在HANA中作为虚拟表添加,并且可以正常工作。 如下所示的SQL语句返回请求的数据。

 tab =选择一,二,三
       来自" abc"。" vt_oracle"
       在哪里='xxx'

但是选择整个表需要花费很长时间,因为将要同时查询其他20个系统,每个表最多有2.5亿个条目。 我们只需要数据的一个子集,因此我在该函数中添加了方法参数x和y以在另一个WHERE子句中使用,并以较小的部分查询表。

 tab =选择一,二,三
       来自" abc"。" vt_oracle"
       在哪里='xxx'
         和x和y之间的两个
 

在第一个选择语句中,WHERE one ='xxx'子句在第二个条件中被下推到Oracle数据库,而WHERE子句的两个部分都没有下推,并且查询花费了更多的时间来执行。/p>

似乎无法将参数下推到远程源。 我有办法解决这个问题吗?

付费偷看设置
发送
6条回答
Aaron 3364
1楼-- · 2020-09-08 14:00

尝试改用cl_sql_statement结构。 它并不能解释为什么您的AMDP无法运行,但是它肯定是一个更强大/灵活/可控制的选项。

小c菟菟
2楼-- · 2020-09-08 13:50

我可以通过Smart Data Access查看执行的Statement。 这就是为什么我可以确定未通过WHERE的原因。

南山jay
3楼-- · 2020-09-08 13:49
半个程序猿
4楼-- · 2020-09-08 14:01

因此,如果不是参数而是固定值,是否会将其推送到oracle?

5楼-- · 2020-09-08 13:52

固定值被下推到db。

Doze时光
6楼-- · 2020-09-08 14:09

您认为您的链接有用吗,您知道吗? 用哪种语言?

一周热门 更多>