当前位置:主页 > 云数据库 > 正文

轻量服务器_网站优化建设_12月免费

时间:2021-07-22 19:39 来源:埃里克云 编辑:埃里克云

核心提示

Amityville恐怖-第3部分 如果您的企业中使用最广泛的自定义ABAP报告之一如此复杂和脆弱,以至于您害怕它,每当提到它的名字时,都躲在桌子下面,会发生什么? 更糟糕的是,有一大...

Amityville恐怖-第3部分

如果您的企业中使用最广泛的自定义ABAP报告之一如此复杂和脆弱,以至于您害怕它,每当提到它的名字时,都躲在桌子下面,会发生什么?

更糟糕的是,有一大堆与这个可怕的程序相关的更改请求,而你是幸运的ABAP程序员,所有这些请求都被分配给了你。如果你不做改变,你就会被解雇,如果你真的做了改变,程序会变得如此脆弱,它会像吸血鬼一样在阳光下反应,然后爆炸,不管它有多疯狂,然后你的生意中最重要的报告就被塞满了,不管怎样,这都是你的错,你被解雇了。

这是一个一直流行的"摇滚乐和艰苦的地方"的困境-但它必须是这样吗?有办法摆脱这场噩梦吗?

以前的博客主题:-

https://blogs.sap.com/2017/02/17/the-amityville-programming-horror/

https://blogs.sap.com/2017/02/18/the-amityville-programming-horror-part-2/

在之前的那些博客中,我提倡做一些微小的改变,试图填补程序中无数伤口中最可怕的伤口,同时做一些新的改变–通常情况下,这会增加问题的严重性。

在现实生活中,我刚刚完成了这样一个练习–我正在经历我在这些博客中实际所做的事情的过程,使用怪物来伪装程序的实际性质。

我的更改在周末投入生产,我给一个我怀疑的关键业务用户发了电子邮件对我来说,这个报告的主要用户是数百个用户中的一个,但根据我对使用日志的分析,可能是运行它最多的用户。不管怎样,我问她从周末开始是跑得快还是慢,她说他说:-

我注意到今天添加了额外的字段,肯定更快了,我刚才说哇怎么回事!!!!!

这是一个理想的结果——这个项目比以前做得更多,而且速度更快。此外,我只是真正触及了节目中问题的表面,正如我前面所说的,问题比天上的星星还多。好吧,经过17年的修修补补,我想起了阿尔伯特·爱因斯坦的一句名言,我可能会解释一下,但它是如下所示:-

"据我们所知,只有两样东西是无限的——宇宙和人类的愚蠢。我不确定宇宙"

循环编程

让我们回到一些具体的例子。正如我在上一篇博客的结尾提到的,当我对程序进行SQL跟踪时,我收到了一条可怕的"超过5000条记录"的消息,即使是一小部分数据。你在这里要做的是按表聚合数据,并查看读取次数最多的表。

事实上,即使不聚合数据,只是上下滚动,最坏的罪犯也会跳出来,用一条湿鱼扇你的脸,尖叫着"我来了!我来了!尽可能多地读取数据库。

我注意到的第一个问题是VBAK上的大量读取。我发现这样做的代码,在一个相当大的内部表上循环,每次做一个SELECT SINGLE。

Contracts

好消息是通过循环主表收集GT\u合同,这样每个VBELN只有一个条目。不将此包含在主联接中的逻辑可能是,并非每个销售订单都是参照合同创建的。

内部表只有两个字段–VBELN和KTEXT。我在这里做的是用FOR ALL条目替换循环,所以只有一个对数据库的请求。在ST05记录道中仍然会有很多行,但是只有以前的一小部分。这是一个快速的解决方案——接下来我可以做一个测试,看看主SELECT语句中的左外连接是否比只查找已知存在的契约更快。

接下来,我注意到KNVP/KNA1上有大量的"相同选择"。结果发现,这个程序在循环中寻找特定合作伙伴功能的细节,即所谓的"项目"。最初的程序员很有远见地创建了一个缓冲表,以防止数据库在被发现一次后多次读取以获取项目名称。这是很常见的,在这种情况下,表GT\u PROJ被读取,如果存在一个条目,万岁,这是使用,否则我们去数据库。几年前,弗兰肯斯坦男爵的一位业务分析师(来自黑泻湖的生物)做出了这样的决定:一些送货地址(SAP speak中的ship tos)将为每个一次性的多年项目添加"项目"合作伙伴功能,以命令大量怪物实施邪恶行为

因此,请求得到了批准更改此报告,使项目编号和名称添加到每一行。一切都很好,但在接下来的三年里,没有在SAP系统中创建实际的项目。因此,在这段时间内,每次运行报告时,都会有大量的数据库读取,寻找不存在的内容。

因此,如果没有项目,三年内都没有,即使现在已经创建了一些,仍然是绝大多数时间,缓冲不起作用。如果你把一个Z表设置为有单记录缓冲,那么系统就足够聪明,可以缓冲负结果,避免相同的选择,但是在这个例子中,程序员自己编码缓冲。

  • <strong>云存储_佛山顺德网站建设_超低折扣</strong> 云存储_佛山顺德网站建设_超低折扣

    您是否有过这样的问题:是否可以将事务FBL5N(客户行项目显示)移植到Webdynpro?不?你真幸运!重建FBL5N不是我最喜欢做的5件事,所以当我得到这个问题时,我很不愿意开始。幸运的...

  • <strong>云主机_获取服务器地址_促销</strong> 云主机_获取服务器地址_促销

    到目前为止,我们已经创建了两个应用程序。一个用于维护员工特定的奖金计划,另一个用于授予员工奖金。到目前为止,奖金仅取决于已完成销售订单的净额。 任务:在自定义业务...

  • <strong>天翼云_免费虚拟主机管理系统_免费6个月</strong> 天翼云_免费虚拟主机管理系统_免费6个月

    任务:在标准业务对象上创建自定义字段。 示例:要计算与产品相关的奖金,标准业务对象"产品"将获得奖金百分比的自定义字段 要能够打开并调整"管理产品主数据"应用程序的UI您的...

  • <strong>阿里云_美橙互联云主机_怎么样</strong> 阿里云_美橙互联云主机_怎么样

    任务:在标准业务对象上创建自定义字段。 示例:要计算与产品相关的奖金,标准业务对象"产品"将获得奖金有效期的自定义字段。 要适应"管理产品主数据"应用程序的UI,您的用户需...

  • <strong>香港服务器_数据库上机实验_速度快</strong> 香港服务器_数据库上机实验_速度快

    到目前为止,我们已经创建了两个应用程序。一个是维护员工特定的奖金计划,另一个是为员工发放奖金。到目前为止,奖金权利仅取决于已完成销售订单的净额,但在奖金计划中,...

  • <strong>域名备案_数据库文本类型_新注册优惠</strong> 域名备案_数据库文本类型_新注册优惠

    各位开发人员好, 这里我要写一个关于sapui5的有趣话题。根据状态更改sap.m.表的整行颜色。通常我们在状态字段中保留一个文本,并根据状态更改文本的颜色。但是,现在客户问这个...

  • <strong>专属服务器_数据库显示正在还原_企业级</strong> 专属服务器_数据库显示正在还原_企业级

    多年来,SAP客户一直有机会要求对SAP功能进行更改,并就所提供的软件解决方案提出改进建议。 以前我们有开发要求,如今,这已被客户的影响力所取代项目该项目的主要目的是收集...

  • <strong>CDN_合肥建设网站_新用户</strong> CDN_合肥建设网站_新用户

    我写这个博客是为了展示一个场景,向 添加一个自定义标题sap.ui.unified.Shell控件。 统一的Shell控件不直接提供标题财产。还有外壳被分成几个区域,比如左边的菜单按钮,搜索栏位于...

  • <strong>香港服务器_中国近代报刊数据库_安全稳</strong> 香港服务器_中国近代报刊数据库_安全稳

    大家好, 我正在使用企业门户7.5版。 在使用自定义splash映像时,我在使用显示规则中配置的AJAX框架页面登录门户时遇到了splash映像的外观问题。 在我的情况下,Splash图像垂直向下显...