点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
在阅读HA400培训课程脚本(课程版本12)时,我遇到以下段落:
起初我以为:哇,从来没有听说过,显然我们所有的加入都是错误的! 但是由于该密码描述了7.4版本的更改,因此我只是在7.0系统中进行了尝试。 我创建了两个表-head和item,然后填充了两个表,但是第一个表位于一个客户端中,第二个表位于另一个客户端中。 无论在哪个客户端中,以及内部还是外部连接,我都无法从其他客户端获取任何数据。
那么,这种改进意味着什么?在<7.4系统中,将客户字段添加到有条件的情况是否合理?
我在文档中找不到任何线索,因此,如果你们的一位专家可以对这一神秘的改进有所了解,我将非常感激。
最好的问候
Michał
client-handling-in-joins.jpg (55.7 kB)
因此,如果我们有此Open SQL代码,则表T1和T2取决于客户端:
在版本<7.40中,也许转换为数据库SELECT的Open SQL SELECT仅包括客户端选择(客户端100的示例):
在版本> = 7.40中,已添加客户端之间的联接:
两个查询的返回行都是相同的,但是如果转换为数据库的SQL的连接显式包含t1.client = t2.client,则数据库有时可能会更好地优化查询。 咨询说明 621640-通过JOIN和自动客户端处理进行选择的解释:
因此,在此注释中,SAP最终提出了 测试Open SQL(7.40之前的版本)中的此解决方案是否提高了性能:
对不起,我有3条单独的评论-我曾两次尝试将所有评论都放入一条评论中,但由于某种原因无法提交。
侵犯版权,但我怀疑SAP会为此寻求保护。 大多数内容在ABAP文档中。 无论如何,您都可以在几天内删除这些注释。
是否有可能以前通过仅在WHERE中为所有表添加客户端选择(a〜client ='100'和b 〜client ='100'),并且现在添加了等式(在a〜client = b〜client上)。 结果没有改变,但也许数据库可以更好地优化?
也许此注释可以解释过去的工作方式:note 621640 通过JOIN和自动客户端处理进行选择
谢谢桑德拉! 其实我也在考虑。 但我找不到该笔记,谢谢。
现在,我尝试将MANDT字段添加到ON条件,因为我们开发的目标系统范围是7.0到最新的系统。 但是从7.40开始,在使用MANDT字段的情况下,将在ON条件下发出错误通知-同时(扩展)语法检查和Code Inspector的默认变体。
动态SQL是没有选择的,所以我认为我们最终将忽略这个问题-只有拥有旧系统的客户才可能受到影响。
一周热门 更多>