我正在实现一个A/B/View场景,这意味着 View 指向表A,而表B 更新,然后发生切换,在加载表 A 时 View 指向表 B。
这种转变每天都会发生。有数百万行需要更新,成千上万的用户正在查看 View 。我使用的是 SQL Server 2012。
我的问题是:
- 如何以最快的方式将数据从另一个表插入到一个表中? (在存储过程中)
- 有什么方法可以使用 BULK INSERT 吗?或者,使用常规插入/选择是最快的方法吗?
最佳答案
您可以从 SrcTable 中选择 ColA、ColB 到 DestTable_New。加载 DestTable_New 后,重新创建索引和约束。
然后将 DestTable 重命名为 DestTable_Old,并将 DestTable_New 重命名为 DestTable。重命名速度非常快。如果出现问题,您还可以备份附近的上一个表 (DestTable_Old)。
我曾经做过这样的场景,我们必须让系统 24/7 运行,并且每天需要加载数千万行。
关于sql - 从表到表批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100589/