【问题标题】:Data Movement SQL Server数据移动 SQL Server
【发布时间】:2017-03-29 05:47:15
【问题描述】:

在 SQL Server 2008 R2 中,我有两个表 Table_ATable_B

Table_A 有 2000 万条记录,Table_B 为空,结构与 Table_A 相同。我想将记录从 Table_A 移动到 Table_B 有条件(90 天以前的记录,1500 万条记录)而没有任何性能问题。移动数据的最佳解决方案是什么?

数据一旦移动到Table_B,就必须从Table_A删除。

【问题讨论】:

  • 我相信不是堆栈溢出问题
  • 你所说的“千万”是什么意思?
  • 您应该坚持国际公认的计量单位 - 千、百万、十亿 - “千万”和“十万”等是普遍适用的众所周知,很多人不知道您指的是多少数据......
  • 2 千万 = 2000 万条记录
  • 即使有几个人向您评论使用印度词,您仍然没有做任何事情来解决您的问题。

标签: sql-server sql-insert bulkinsert


【解决方案1】:

尝试用简单的 SQL 思考:

INSERT INTO target
    SELECT as_is_col1, as_is_col2,
    FROM source
    WHERE wanted_col BETWEEN 0 AND 200000000;

【讨论】:

  • 也许您应该为您的insert 命令配备一个列列表。这将使事情变得更加清晰,尤其是当涉及identity(主键)列时。在这种情况下,您还必须在它之前放置一个set identity_insert target_tbl on; 命令。只有这样您才能在两个表中获得相同的 id 编号。
  • 兄弟.. 长时间会导致表锁。由于它是非常重要的业务表,我想像在普通的 sql 查询中那样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 2013-04-10
  • 1970-01-01
  • 2013-02-08
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多