多次插入与一次插入包含多个值

daa*_*daa 5 sql sql-server

我知道这个问题过去已经被问过,但我需要更具体地了解网络的性能。

\n

我需要通过网络同时发送 1 到 100 行,并且需要具体答案来确定哪种方法更适合我的情况。如果许多客户端同时运行此查询,哪种方法更合适?

\n

对于我的项目来说更重要的是执行速度。

\n

在我的结果中,没有什么区别。\xce\x91 具有多个值的一次插入要快一些,并且执行速度要快一些。但我需要知道这些查询是否存在任何陷阱或需要防止的情况。

\n

先感谢您。

\n

例子

\n
INSERT INTO Customers (Name, Age, Active) ('Name1',21,1)\nINSERT INTO Customers (Name, Age, Active) ('Name2',21,1)\n
Run Code Online (Sandbox Code Playgroud)\n

VS

\n
INSERT INTO Customers (Name, Age, Active) ('Name1',21,1),\n                                          ('Name2',21,1)\n
Run Code Online (Sandbox Code Playgroud)\n

我忘了说它们是简单的插入物。

\n

Gor*_*off 7

一次插入与多次插入:

  • 一个insert会快一点,因为查询只需要解析一次。
  • 如果每个语句都是独立提交的(默认),那么单个语句insert会更快,因为它只有一次提交。
  • 如果一条记录插入失败,则单个 中的所有记录都会失败insert。对于多次插入,有些可能会成功(.
  • 表上的插入触发器应构建为同时处理多行。这是一条注释,但不会影响性能。

我的猜测是,在您的情况下,性能差异非常小,但值得衡量。如果您同时有很多行并且表结构包含多个索引,那么它会变得很重要。