向包含数十亿条记录的现有HANA DB表中添加新列的影响分析?

2020-08-20 12:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们想在现有表中添加一些其他列,...

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

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


我们想在现有表中添加一些其他列,这是我们的关键表之一,其中包含数十亿行。 我们想进行影响分析。 是否有任何工具或实用程序可用于此类活动的影响分析?

谢谢

4条回答
SKY徐
2020-08-20 13:07

没有标准的影响分析工具可以通过添加新列来显示和记录所有受影响的对象和过程。

这意味着您必须手动执行此操作并在 具有相似数据量的非生产实例。

基于对带有ca的表的快速测试。 150Mio。 记录和永久运行的INSERT语句,我可以分享以下观察结果:

  • 几乎没有时间添加新列(具有默认值和NOT NULL约束)。
    实际上 讲,HANA只需添加两个字典条目(默认值和NULL),并为每个记录分配一个指向默认条目的指针。
    这与现有列无关。
  • 长时间运行 在表上保留锁的insert/update语句将阻止ALTER TABLE命令。
  • 一旦创建了新列,就会触发增量合并。 在这里,将应用与通常相同的锁定效果和保存点活动。
  • 插入并选择未指定受影响/计划的列的语句将在创建新列后失败或产生不同的输出。

就像Oracle将更改实际存储块直到下一次更新一样,SAP HANA首先在目录中执行更改,然后将IO的重要部分推迟到异步增量合并/保存点。 处理。

总而言之,在SAP HANA中添加列相对没有麻烦。

要考虑的一件事是,如果要添加多个列,请在单个ALTER中执行 TABLE命令可最大程度地减少等待表锁所花费的总时间。

一周热门 更多>