3 小时部署 window 并且需要将 190k 电信用户从一家电信公司迁移到另一家电信公司

3hrs deployment window and Need to Migrate 190k Telecom subscriber from one Telco to other

我需要编写 PL/SQL 脚本,该脚本需要将 19 万用户从一家电信公司迁移到另一家电信公司。使用此脚本,我需要更新订户和帐户的不同表并进行具有复杂逻辑的服务协议更改。迁移每个订户后,我需要保持 "particular subscriber successfully Migrated" 的状态。为此,我打开了 190k 订阅者的游标,每个订阅者都在循环中一个一个地迁移。在性能测试时,我发现在 1.5 中只有 19k 订阅者成功更新。小时。这要花很多时间,而我的部署 window 只用了 3 小时。请指教我,在这种情况下如何进行技术处理。

在现代数据库中要处理的 19 万条记录确实不多。很难给出任何一般性建议,因为具体情况取决于具体情况。我的第一个猜测是,随着您的目标数据库在迁移过程中增长,您可能会遇到记录为 0 的表统计信息,从而在执行更新和检查完整性和唯一约束时导致 FTS。尝试放松对目标的约束。监视目标上的执行计划,如果有任何显示 FTS 或高 IO,则定期收集统计信息,或使用 DBMS_STATS 包在迁移之前设置统计信息。分而治之是您可以采用的另一种通用方法 - 参数化您的迁移例程,以便您可以对一系列记录进行操作,然后 运行 并行迁移,每个处理一个不同的范围。也许你也可以拆分迁移和验证过程,即运行迁移复制帐户,并将状态设置为"COPIED"(来自"COPYING"),然后进行验证过程(可能并行化)轮询 "COPIED" 记录,然后验证它们,将状态设置为 "CHECKING",然后是 "OK" 或 "FAILED",或其他。

更具体的帮助需要更多的细节。