代码之家  ›  专栏  ›  技术社区  ›  Chris Simpson

一个接头还是多个接头?

  •  9
  • Chris Simpson  · 技术社区  · 14 年前

    是将这些语句合并在一起以便只有一个插入语句,还是将它们分开保存比较好?

    或者这没有什么区别?

    6 回复  |  直到 14 年前
        1
  •  2
  •   OMG Ponies    14 年前

    在一个用户定义的函数中,我看不出有理由使用一个而不是另一个。A UNION 可能比单独的语句更具约束性。。。

        2
  •  6
  •   AdaTheDev    14 年前

    我只是 UNION ALL UNION 联合所有人 .

        3
  •  6
  •   Vinod T. Patil    11 年前

    我建议单独插入。我发现使用Union All的insert与单独的insert相比性能非常差。我试着用这两种方法插入大约3500条记录,单独的insert语句速度快了4倍。(可能因插入内容中的列数而异)

        4
  •  5
  •   Luka Milani    14 年前

    相反,你自己想想什么是最好的解决方案,我建议作为一个提示使用一个适当的工具。

    在使用managementstudio的sqlserver中,您可以通过 Display Estimated Execution Plan . 因此,这样你就可以真正看到你的两个案例之间的差异,并通过观察结果来选择最好的一个。

        5
  •  5
  •   veljkoz Danko Valkov    14 年前

    当你分开的时候 INSERT s、 您必须注意在事务内部执行,以便始终保持一致的状态。但是,由于它们是分开的,所以服务器完成所需的内存量较少,因为 插入 有自己的结果集-当查询完成时,服务器可以自由地执行另一个查询等。。。

    当一个大查询中的所有内容都由 UNION ALL 服务器需要更多的临时表和内存才能完成。但是,这种方法有点像“批量”插入,可能导致更快的插入。

        6
  •  0
  •   Skandy    6 年前

    UNION v/秒 UNION ALL 在功能上是不同的。 使用时要小心 工会 因为它会尝试去重复,而且可能不是您最初想要的结果。

    INSERT (s) 如果记录的数量少于 联合所有人