在我的方案中,我使用HTTP目标将ABAP系统连接到基于非ABAP的系统。
我想在ABAP中实现缓存,以便可以使用应用程序的性能,而不必每次都访问后端。
我想在ABAP中只能通过使用共享内存来实现缓存。
https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-US/abenuse_shared_memory_guidl.htm
这正确吗?
答案 0 :(得分:1)
我想“缓冲”是指“加载到ABAP内存中,避免了额外的数据库往返”?
如果是,我同意您的理解,共享内存将是唯一的实现方法。
但是,请考虑在数据库之上,您可以拥有1..n个应用程序服务器,每个服务器都可以具有1..n个工作流程。共享内存将使您可以在一个应用程序服务器中的整个工作流程中缓冲内容,而在应用程序服务器中的不是。
如果您考虑其他“缓冲”方式,例如对原本缓慢连接的数据的聚合视图,则可以通过使用适当的数据库视图或实现来获得其他方式。
答案 1 :(得分:0)
ABAP AS每次获取http请求时,都会获得一个新的“会话”(滚动区域)。没错,共享内存可能是实现缓冲区的一种选择。另一种选择是在SE11中打开表缓冲。
但是典型的方法实际上是始终从数据库开始并再次读取数据。
要提高应用程序的性能,您可以尝试减少从http到ABAP的调用,因为在http端实现了更多的逻辑。
也请考虑DBMS也会缓存。也许这还可以改善许多配置中的响应时间。