0

场景:我想将一个模式表备份到同一数据库中的另一个模式。

现有设计:删除备份表上的索引并截断数据,最后将数据加载到备份表中(Usign插入查询)。

要求:现有设计需要更多时间来处理。请建议我有没有其他方法可以实现这一目标......

谢谢。

4

1 回答 1

2

如果您有大量数据,并且您已经在做“显而易见”的事情以使其快速运行(直接路径插入,主要是并行,nologging如果您负担得起的话),您可能无能为力坚持使用 SQL。

您可以尝试的一件事是使用带有remap_schema选项的数据泵模式导出/导入。该过程将是:

  • 导出源模式expdp(在SCHEMAS模式下)
  • 删除目标架构并重新创建它(空)
  • impdp使用和remap_schema=source:target选项导入转储(请参阅 参考资料REMAP_SCHEMA)。

您可以跳过第二步并table_exists_action=replace在导入期间使用 - 可能会更快,如果目标架构有其他对象,肯定会更好(请参阅TABLE_EXISTS_ACTION.)

如果您想留在“数据库中”以自动执行此操作,则有一个用于数据泵的 API DBMS_DATAPUMP:.

于 2013-03-23T09:26:29.743 回答