【发布时间】:2015-05-09 14:32:31
【问题描述】:
我需要编写 PL/SQL 脚本,该脚本需要将 19 万用户从一个电信公司迁移到另一个电信公司。使用此脚本,我需要更新不同的订阅者和帐户表,并进行具有复杂逻辑的服务协议更改。迁移每个订户后,我需要保持“特定订户已成功迁移”的状态。为此,我为 190 k 订阅者打开了游标,并且每个订阅者都在循环中一一迁移。在进行性能测试时,我发现只有 19 k 订阅者在 1.5 中成功更新。小时。这需要很多时间,我的部署窗口只有 3 小时。请告诉我,在这种情况下如何从技术上进行。
【问题讨论】:
-
预写全部到一个单独的数据库,然后恢复到目标数据库。这消除了您的时间限制,包括测试选项。
-
@dmaij 你不能预写(我认为)。必须在给定时间点在一侧拍摄快照,并在 3 小时内转换到新站点
-
@Luis,我也这么认为,但是当我查看问题时,问题可能不在脚本中,而在网络设置或组合中
-
谢谢,我想prewrite可能是可能的,即在同一数据库中1天前将所有数据保存在临时表中,并在部署窗口期间与实际数据库表合并,可能会创建一些订阅者或在当天更新,因此我们可能需要在实际更新期间捕获这些内容。我想到的一种方法是将用户群划分为 10 个子集,对帐号使用模 10,并有 10 个具有相同逻辑的并行脚本来处理每个子集。请提供相同的建议。
标签: sql plsql performance-testing query-performance telecommunication