【问题标题】:Data transfer from a big table to other new tables in SybaseSybase 中从大表到其他新表的数据传输
【发布时间】:2013-11-13 19:44:42
【问题描述】:

我有一个要求,我需要根据一列上的一个条件将具有 50M 记录的大表分解为两个表。 我不想使用“insert into table1 select * from table2 where condition = true”语句。

最好的方法是什么?提前致谢。

【问题讨论】:

  • 为什么不想使用最简单的方法呢?性能问题?其他原因?表格是否必须在物理上分开,或者您可以使用视图来完成吗?
  • 使用select * into <new table>。这将不会使用日志和最快的方式在 BCP 之后插入。但是,您必须手动在新表上创建约束/索引/触发器(如果有)。它们不会被复制。

标签: sql sap-ase data-transfer


【解决方案1】:

您可以使用 2 个视图来选择要发送到 2 个表的数据。

【讨论】:

    【解决方案2】:

    由于您不想使用最简单的方法,这里有几个使用 bcp 和视图的选项。

    如果只需要新建一张表:

    1. 使用真实条件语句创建表视图。
    2. BCP 将该视图中的数据导出到新表中。
    3. 从原始表中删除真实的条件记录。

    如果需要新建两个表:

    1. 创建具有真实条件的表视图
    2. 使用错误条件创建表视图
    3. BCP 将数据从两个视图中取出并放入新表中

    【讨论】:

      猜你喜欢
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多