SAP IQ 16 ROWID分配

2020-09-20 09:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在执行从IQ ...

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

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


嗨,

我正在执行从IQ 15.4到IQ 16.1 sp02 pl04的数据迁移。

在我的IQ 15表中,ROWID是完全顺序的,即行计数与max(rowid)始终匹配。

将数据迁移到我的IQ 16.1表时,即使两个系统上的行数都匹配,ROWID也不会连续,并且行数与max(rowid)不匹配。 此外,当行数超过一定数量时,IQ 16.1中的行标识符分配总是存在巨大的缺口-为什么会发生这种情况?

为什么上述IQ引擎之间的行为差​​异对我们很重要? 使用哈希md5函数(在IQ 15表和IQ 16表之间)执行数据验证比较时,我得到的校验和值不匹配。 这是因为IQ 16表上的ROWID包含巨大的空白,并且由于为行分配了不同的rowid,这些行值的顺序已更改,因此(有序与无序)值列表上的校验和很明显 不匹配。

我可以了解内部rowid是否不同,但这会影响IQ 16表中行的顺序,其中没有主键或已定义的顺序,因此我不能依靠md5哈希函数来验证数据 比较目的。

任何帮助或想法,将不胜感激。

此致

Asif。

4条回答
愤怒的猪头君
2020-09-20 09:57

嗨,柯比,

我了解您对为何IQ 16中的ROWID不是连续的但在IQ 15.x中找不到此行为的解释。

此外,ROWID确定了数据的内部顺序,我需要在源(IQ 15)和目标(IQ 16)之间使此顺序相同。 LIMIT子句实际上是通过利用单个线程来执行加载来强制加载引擎维持相同的顺序。

我已经进行了一些性能测试,并且对性能没有太大影响,因此我将LIMIT子句添加到我的加载脚本中。

感谢您的帮助。

Asif。

一周热门 更多>