如何清除SQL查询缓冲区:ecc

2020-09-15 21:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

FM改进性能的一部分,我通过复制两个输入/输出的现有FM相同,点击相同的表来创建新的FM。 我正在使用SAT ST05来测量更改,在新的FM中,我对SQL查询和ABAP代码做了些微更改。

问题是我在两个fm中都用相同的查询命中相同的表时,第一次执行任何fm时结果要花费更多的时间(60秒)并被缓冲,然后第二个fm执行得太快(4秒)。/p>

我试图一天执行一次fm,另一天又执行FM-这样做不会保存缓冲区。 这里的另一个问题是我正在质量检查中进行测试,服务器负载每天都在变化。 假设我执行新/旧FM的一天是50秒,另一天则是100秒....使用相同的查询。

我们尝试使用/$ SYNC和/$ TAB没有帮助,我的基础团队也没有帮助,他们说结果在oracle db级缓冲,以清除我们没有选择的缓冲。

让我们知道如何清除缓冲区并同时测试两个FM。

谢谢

毗湿婆

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

FM改进性能的一部分,我通过复制两个输入/输出的现有FM相同,点击相同的表来创建新的FM。 我正在使用SAT ST05来测量更改,在新的FM中,我对SQL查询和ABAP代码做了些微更改。

问题是我在两个fm中都用相同的查询命中相同的表时,第一次执行任何fm时结果要花费更多的时间(60秒)并被缓冲,然后第二个fm执行得太快(4秒)。/p>

我试图一天执行一次fm,另一天又执行FM-这样做不会保存缓冲区。 这里的另一个问题是我正在质量检查中进行测试,服务器负载每天都在变化。 假设我执行新/旧FM的一天是50秒,另一天则是100秒....使用相同的查询。

我们尝试使用/$ SYNC和/$ TAB没有帮助,我的基础团队也没有帮助,他们说结果在oracle db级缓冲,以清除我们没有选择的缓冲。

让我们知道如何清除缓冲区并同时测试两个FM。

谢谢

毗湿婆

付费偷看设置
发送
9条回答
代楠1984
1楼-- · 2020-09-15 21:48

我真的不明白为什么如果要加快查询速度就必须清除缓冲区。 如果您不想使用缓冲区,我想您可以为您选择的表(在SE11或SE13中)设置不允许的缓冲,或者另一种简单的方法是在查询中添加BYPASSING BUFFER ...您可以阅读此主题 缓冲区,也有分析指南:

https: //blogs.sap.com/2015/08/27/to-buffer-or-not-to-buffer-a-database-table /

Doze时光
2楼-- · 2020-09-15 21:35

这是经典的" 问题"。 如果您在不同的时间,不同的上下文等环境中运行,则不能有相同的持续时间。在极端情况下,系统专用于性能优化。 即使是第一次测量,也必须有2个连续的执行,而由于缓冲,您必须测量第二个。 如果您认为一条SQL语句确实过长,则必须分析其执行计划,更改SQL,然后再次运行两次并测量第二条。 不仅是持续时间,还有其他要分析的因素(读取的段数等)/$ SYNC仅清除当前应用程序服务器的SAP缓冲区(而不是数据库缓冲区)。

callcenter油条
3楼-- · 2020-09-15 21:37

对"在oracle数据库级别缓冲"一无所知

但是关于ABAP的表缓冲:

https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abensap_puffering.htm

Nan4612
4楼-- · 2020-09-15 21:44

专用的性能系统 优化-很难。

执行计划:是的,我正在这样做,但是它仅给出是否使用索引。 根据对执行计划的分析,我对新的财务管理做了一些更改。 现在我要测试两个调频,看看是否达到了任何性能。

/$ SYNC仅清除当前的应用程序服务器SAP缓冲区(不清除数据库缓冲区)。 -是的,但这是我在论坛/博客中以及从基础上找到的唯一选择。

Vishwa

Baoming ROSE
5楼-- · 2020-09-15 21:49

所以这是Oracle的事,

"为了获得一致的时间测量而不受缓存影响,您必须在执行被测查询之前清除所有缓存:
 •清除Oracle的buffer_cache:
 o更改系统刷新buffer_cache;
 •清除Oracle的shared_pool:
 o更改系统刷新shared_pool; 

不确定使用native-sql命令,更好地寻找可用的工具,因此向数据库管理员询问一些脚本吗?

哎,真难
6楼-- · 2020-09-15 21:40

OK可以说您要检查同一数据库上2 fm的性能。 设置差异编码方法。 我认为您不需要在这里关心缓冲区,我认为您可以将数据放入缓冲区(通过创建简单的SQL或仅用于将数据加载到缓冲区的目的),然后针对该缓冲区运行两个fm,您将获得所需的结果 (只是我的理想:))。 您可以安排在同一时间同时运行这些fm,以最大程度地减少其他影响。 再次,您不能期望每次运行相同的fm都会一样,就像Sandra所说。

一周热门 更多>