我没有见过SAP文档,但这似乎是它的工作方式-谁请纠正我,如果我错了。
从CDS视图进行选择的ABAP代码: select *从z_workorder_status到TABLE @DATA(gt_wrk_stat),供应商= @my_vendor。
WHERE子句直到从CDS视图获取所有数据之后才会执行,对吗?换句话说,您必须将供应商作为CDS视图参数传递给CDS视图,以便将其用作筛选器。在CDS视图中使用WHERE子句作为筛选器是不够明智的,对吗?
我查过的痕迹似乎显示了这种行为。为了避免巨大的结果集,CDS视图应该有一个键值参数-供应商或工厂或公司代码或日期范围.否则,CDS视图会带来巨大的结果集,然后where子句在最后将其过滤下来。(如果你幸运的话)。如果您运气不好,CDS视图将达到系统内存限制)
发布于 2022-10-11 05:29:54
不,你的理解不对。在CDS选择中是否可以直接考虑where子句取决于如何构建CDS视图。这里CDS的选择确实有“过滤下推”的概念,意思是直接考虑HANA中的过滤。请查看这个博客,以获得更多的想法:https://blogs.sap.com/2018/12/20/safeguard-performance-of-abap-cds-views-part-3-rules-for-good-performance-of-cds-views/。
https://stackoverflow.com/questions/74019825
复制相似问题