对HDB进行批量删除的优化

2020-09-30 04:00发布

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

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


大家好,

在一个周期性的时间间隔内,我想重新分配一个表中的过时数据。 30亿条记录。 到目前为止,我通过双重内部连接(和光标)将相关数据提取到itab中。 然后,我从itab中删除dbtab。 预计每周过时的记录数量:5000万。 但是,您可以想象,它花费了很长时间,大约。 1.5天

现在,我们在HANA数据库上运行CRM,我认为HANA带来了一些新的绩效机会。 我考虑过将代码下推到SELECT并直接在数据库中删除提到的记录。

您有提高性能的想法吗? 也许具有CDS视图或AMPD?

此致

丹尼尔

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

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


大家好,

在一个周期性的时间间隔内,我想重新分配一个表中的过时数据。 30亿条记录。 到目前为止,我通过双重内部连接(和光标)将相关数据提取到itab中。 然后,我从itab中删除dbtab。 预计每周过时的记录数量:5000万。 但是,您可以想象,它花费了很长时间,大约。 1.5天

现在,我们在HANA数据库上运行CRM,我认为HANA带来了一些新的绩效机会。 我考虑过将代码下推到SELECT并直接在数据库中删除提到的记录。

您有提高性能的想法吗? 也许具有CDS视图或AMPD?

此致

丹尼尔

付费偷看设置
发送
2条回答
Bunny_CDM
1楼-- · 2020-09-30 04:39

您好,Daniel,

您可以

1,编写一份报告,并在批处理作业的paralell中运行它。

2,创建索引以加速SELECT 借助内部联接

3,是否可以直接在HDB上运行SQL?

Spencer

哎,真难
2楼-- · 2020-09-30 04:33

Hi Spencer,

感谢您的回答。

1。 过去,我们遇到了一些性能问题,例如 由于并行化,HDB上的CPU使用率很高。 因为我的问题不是关键业务,所以我想避免在HDB上并行化。

2。 我认为由于内存(HDB上的空间)消耗,我无法证明这三个非常大的表上的新索引合理,因此这也不是一种选择。

这很关键,因为在Oracle上,我更喜欢选项1和2。:-)

3。 选择示例的代码示例(请参见下文)。 在这种情况下,我将选择推到应用程序服务器,然后从itab删除dbtab。 您知道是否可以在CDS视图中直接删除吗? 我认为云将有所帮助并提高性能。

 @ AbapCatalog.sqlViewName:'ZV_TEST'
 将视图Zcdsv_Test定义为从crmd_order_index中选择作为orderidx
     内部连接crmd_orderadm_i作为orderadmi
         在orderidx.header = orderadmi.header上
     内部连接crm_jcds作为jcds
         在orderidx.header = jcds.objnr上
         和orderidx.item = jcds.objnr
         {
         jcds.mandt,
         jcds.objnr,
         jcds.stat,
         jcds.chgnr,
         jcds.usnam,
         jcds.udate,
         jcds.utime,
         jcds.cdtcode,
         jcds.inact,
         jcds.chind
         }
         其中orderidx.posting_date_hd ='20151022'
             and orderidx.object_type ='BUS2000115'
             和(orderidx.process_type_ix ='ABC'或orderidx.process_type_ix ='XYZ')
 

此致

丹尼尔

一周热门 更多>