Sql 复制表、插入两次还是在末尾进行批量复制,哪种策略更好?

Sql 复制表、插入两次还是在末尾进行批量复制,哪种策略更好?,sql,Sql,我有一张桌子,经过一系列步骤,然后需要清理。我想在截断之前将此表中的值复制到另一个表中。我不想谈细节,但这有一个很好的理由 我在想最好的办法。我看到的两个选择是: -每次插入/更新第一个表时,对第二个表执行相同的操作 -第一次完成后,在它被截断之前,将它复制到第二个表中 就绩效而言,两种策略中的任何一种都比另一种更好吗?我没有太多的SQL经验,所以我没有任何想法。我个人会选择选项1。插入时,请执行两次。它使事情变得更简单,而且您不必在以后运行大量查询来复制它。第二个选项在性能方面要好得多(大容量

我有一张桌子,经过一系列步骤,然后需要清理。我想在截断之前将此表中的值复制到另一个表中。我不想谈细节,但这有一个很好的理由

我在想最好的办法。我看到的两个选择是:

-每次插入/更新第一个表时,对第二个表执行相同的操作

-第一次完成后,在它被截断之前,将它复制到第二个表中


就绩效而言,两种策略中的任何一种都比另一种更好吗?我没有太多的SQL经验,所以我没有任何想法。

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

第二个选项在性能方面要好得多(大容量插入),因为您的表在操作开始之前将是空的,因此您只需执行
插入-选择*

它会将所有ur记录插入到第二个表中。

如果不知道您的设置和瓶颈所在,就不可能回答哪种策略对性能更有利。数据输入/输出?日志I/O?日志空间?维护窗口长度?“性能更佳”可以表示“尽可能快”,也可以表示“资源尽可能少”。对于您提出的问题,没有普遍适用的答案

不过,一些谷歌面包屑可能会帮助您:您的第一个表称为“staging table”,第二个表称为“audit table”。关于它们的性能和设计存在很多讨论。您可能会找到一个接近您的设置和要求