场景:我想将一个架构表备份到同一数据库中的另一个架构。
现有设计:删除备份表上的索引并截断数据,最后将数据加载到备份表中(使用插入查询)。
要求:现有设计需要更多时间来处理。请建议我有没有其他方法来实现这个......
感谢。
答案 0 :(得分:2)
如果你有一些非常重要的数据,并且你已经做了“显而易见”的事情来使它快速运行(直接路径插入,主要是并行,nologging
,如果你能负担得起的话),可能没有更多的东西可以坚持使用SQL。
您可以尝试的一件事是使用remap_schema
选项使用数据泵模式导出/导入。这个过程将是:
expdp
(SCHEMAS模式)impdp
和remap_schema=source:target
选项导入转储(请参阅REMAP_SCHEMA
)。您可以跳过第二步并在导入期间使用table_exists_action=replace
- 可能会更快,如果目标架构有其他对象肯定会更好(请参阅TABLE_EXISTS_ACTION
。)
如果您希望保持“在数据库中”以自动执行此操作,则可以使用数据泵API:DBMS_DATAPUMP
。