云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_负载均衡英文_超低折扣

小七 141 0

你的删除作业删除够了吗?速度慢吗?让我们看看哪些因素会减慢PI中删除作业的速度。

使用默认删除作业从SAP PI表中删除数据从早期开始非常简单,只需激活SAP提供的作业,我们只需确定要运行的时间和邮件的保留期,如果这样做的话然后我们都准备好了,不再担心数据库表的增长,尤其是当PI系统处理的消息量很小,没有做任何更改的情况下,如果我们只是让删除作业运行,我们就很好了。

当您每天处理600-800万条或更多异步消息时,麻烦就开始了

我想强调一下什么可以减慢速度执行delete job,在那之前让我们通过回答下面的问题来看看它是如何工作的。

例如,我有下面delete job的结果,web云服务器,它说它删除了390条记录。

SAP将delete job主要分为两类的表。

控制表:

BC\ U MSG\ U DUP\ U CHECKBC\ MSG\ SEQU\ STAT序列号BC\ MSG\ SEQU\ NBR编号BC\ U MSG\ B列表XI_AF_SVC_ID_MAP(即使此表不是默认删除作业的一部分,但仅从控制表的角度来看,此表不属于消息传递系统副本的一部分,但主要由适配器框架使用,因此此表中的删除由单独的作业处理)。

数据表:

BC_MSG BC_MSGBC\ MSG\版本业务连续性审计BC\消息\日志BC_MSG_LOG_STAT

在DELETE Job(PI 7.5 SP7)的当前实现中,数据分析与大数据,当您运行DELETE Job时,它会创建两个并行运行的SAP托管线程,当这两个并行线程处于最终状态(成功或失败)时,删除作业完成。

JVM线程1:尝试根据保留期从控制表中删除过期记录。JVM线程2:尝试根据保留期从数据表中删除过期记录。

如果作业状态在几分钟或几小时后没有恢复,则表示作业仍在运行,状态只有在成功或失败后才会出现,所以如果要删除的记录数较多,则需要很长时间才能显示状态。

在上面的示例中,我们的删除作业说它删除了390条记录,这是什么意思,它删除了哪个表?

390是它从BC\ MSG和BC\ MSG\日志中删除的全部异步和同步消息,它是否只从这两个表中删除了,答案是否,它也从控制表中删除了,但详细信息尚未由当前版本的delete Job报告。

那么它删除了哪些表?查看下面的日志,正如您在下面的日志中所看到的,它在其他表中也运行了删除操作。

最重要的问题是,什么可以使它变慢或如何使它变快,当PI处理大量数据时,这些事情就会出现。

答案围绕着这样一个事实:我们必须确保下面的线程更快完成并删除更多的数据,记住,对于DELETE job的一个实例,两个线程都应该完成并报告结果。

JVM线程1:根据保留期从控制表中删除过期的记录。JVM线程2:根据保留期从数据表中删除过期记录。

影响较大的因素有:

与删除作业有关的消息系统属性:

在我们的生产系统中,当前值为

1天消息传递.duplicateCheck.persistTime& 消息传递.orphanAuditLog.retainTime

3天消息.log.retainTime

如果您想通过将以下位置的跟踪严重性增加到Info来检查DELETE job在您的案例中的执行情况:com.sap.engine.消息传递.impl.core.作业.executor.DeleteExecutor

这个可以从SAP NetWeaver Administrator执行–疑难解答->日志和跟踪->日志配置->选择"显示:跟踪位置",然后输入上述位置。然后从相应的下拉列表中选择严重性"信息"并保存配置按钮。然后,您可以在"疑难解答"->"日志和跟踪"->"日志查看器"->"选择视图"->"打开视图"->"开发人员跟踪"中的"日志查看器"中再次跟踪作业执行情况,云主机云服务器,然后在"位置"列下的"筛选器"行中输入上述位置。

问题4:它在上述表上运行了多少delete语句?数据库如何处理这些语句?

当执行DELETE JOB时,当前使用的算法是,它将为每个较小的表准备1条DELETE语句,以便在几个时间间隔内删除,例如BC\ U MSG\ U DUP\ U CHECK table,当语句运行时,字段中的字段将有较小的值运行。

基于消息.dbUpdates.batchSize& 消息传递.bulkCommit.threshold这就是问题的核心:

不管你怎么微调,几乎没有什么东西不在我们的控制之中,让我们看看下面的例子。

假设您在BC\u MSG\u DUP\u检查表中有1亿条消息,原因很简单,您没有更改消息传递.duplicateCheck.persistTime它的默认值是30天,每天的摄入量接近300万到400万。

当删除作业运行时,您会发现以下痕迹。

如果上面的语句试图删除20天较旧的消息,即使字段被索引,语句也会进行完全索引扫描,如下图所示。

所以如果它进行完全索引扫描,删除超过3天的任何内容可能会运行8小时,这意味着要删除9700万条消息,对此您无能为力。

注意(请忽略我使用(sysdate-3)作为时间戳字段的值的事实)。

如果您的删除作业没有运行得更快,淘客app,这意味着要删除的记录太多,可能是它的错误进行全索引扫描而不是索引范围扫描。

摘要: