ABAP CDS Analytical Query 性能排查,别急着改 SQL,先把建模层级和 Pushdown 路径理顺
很多 ABAP CDS Analytical Query 的性能问题,表面上看是一个查询慢,真正落到系统里,经常不是单条 SQL 写得差,而是 Cube View、Query View、Filter、Exception Aggregation、Currency Conversion、Association、DB Hint 这些东西在运行时叠到了一起。我们的排查思路不能只盯着 ST05 里那条 SQL,也不能一上来就给 HANA 加 Hint。更稳的做法,是把 Analytical Engine 到 HANA Database 之间的数据处理路径拆开,看哪些逻辑已经 Pushdown 到 HANA,哪些逻辑还停留在 OLAP Runtime 或 ABAP 层,哪些过滤条件没有尽早下推,哪些建模细节把优化器逼到了代价更高的执行计划上。SAP 官方关于 ABAP CDS Queries 性能排查的建议里,核心关注点集中在 Hana Pushdown、Exception Aggregation、Currency 和 Unit 处理、Query Filter、Cube View 参数、Bind Variable、Case 语句位置、DB Hint,以及 ST05 里 FDA Write 相关执行计划上。@Consumption.dbHints可以通过 CDS 注解把 DB Hint 传给 HANA,@Environment.SQL.PassValue则和 ABAP SQL 条件里传递 Placeholder 还是 Literal Value 有关,这两个注解都属于典型的性能干预点,但都不应该脱离 Trace 和执行计划单独使用。(