在我的场景中,我使用HTTP目的地将我的ABAP系统连接到一个不基于ABAP的系统。
我想在ABAP中实现缓存,这样就可以利用应用程序的性能,而不必每次都访问后端。
我猜在ABAP中,缓存只能通过使用共享内存来实现。
https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-US/abenuse_shared_memory_guidl.htm
这是正确的吗?
发布于 2018-09-20 21:05:17
我猜“缓冲”的意思是“加载到ABAP内存中并避免额外的数据库往返”?
如果是,我同意你的理解,共享内存将是实现这一目标的唯一手段。
但是,考虑到在您的数据库之上,您可以有1..n个应用程序服务器,每个应用程序服务器可以有1..n个工作进程。共享内存将允许您在一个应用程序服务器内跨工作进程缓冲数据,但不能跨应用程序服务器。
如果考虑到其他“缓冲”方法,例如连接速度慢的数据上的聚合视图,则可以通过使用适当的数据库视图或物化来获得其他方法。
发布于 2022-02-22 00:22:19
您必须在ABAP上启动所有的select,然后将您的所有数据发送到http请求。您可以在另一个系统上详细说明它,然后做任何您想做的事情。最后,将结果发送到abap并完成您的目标。这是最快的方法
发布于 2019-03-01 21:08:57
每次ABAP AS get发出http请求时,您都会得到一个新的“会话”(滚动区)。您说得对,共享内存可能是实现缓冲区的一种选择。另一种选择是在SE11中打开表缓冲。
但最典型的方法是始终从数据库开始,然后再次读取数据。
为了提高应用程序的性能,您可以尝试减少从http到ABAP的调用,以在http端实现更多的逻辑。
请同时考虑DBMS缓存。也许在许多配置中,这也可以改善响应时间。
https://stackoverflow.com/questions/52408972
复制相似问题