哪个是复制表,插入两次或批量复制的最佳策略?

时间:2013-07-17 15:05:23

标签: sql

我有一个表经过一系列步骤,然后需要清除自己。我希望在截断之前将此表中的值复制到另一个表。我不会详细说明,但这是有充分理由的。

我正试图找出最好的方法来做到这一点。我看到的两个选项是:

- 每次我插入/更新第一个表,在第二个表上执行相同的操作。

- 第一次完成后,在截断之前,将其全部复制到第二个表格。

在性能方面,这两种策略是否优于另一种策略?我没有太多的SQL经验,所以我没有任何想法。

3 个答案:

答案 0 :(得分:1)

第二个选项在性能方面要好得多(批量插入),因为在操作开始之前你的表将是空的,那么你需要做的就是Insert - select * 它会将所有ur记录插入到第二个表中。

答案 1 :(得分:1)

如果不了解您的设置以及瓶颈在哪里,就无法回答哪种策略对性能更好。数据I / O?记录I / O?日志空间?维护窗口长度? “更好的表现”可能意味着“尽可能快”,或者意味着“尽可能少的资源”。您提出的问题没有普遍适用的答案。

一些谷歌面包屑可能会帮助你:你的第一个表叫做'临时表',第二个表是'审计表'。关于这些的性能和设计存在很多讨论。您可能会找到一个近似于您的设置和要求的文件。

答案 2 :(得分:0)

我个人选择#1选项。插入时,请执行两次。它使事情变得更容易,您不必在以后运行大量查询来复制它。