小编dir*_*101的帖子

SQL Server 是否支持来自多个连接的并行批量插入?

SQL Server 是否支持对同一数据库表的并行批量插入?

对我的特定用例的一些说明:

  • 该表有一个由两个不同索引键组成的聚集索引和两个非聚集索引,每个索引由一个索引键组成。
  • 并行在这里意味着来自多个不同的连接。每个连接都是一个唯一的sqlalchemy.orm.session对象,每个Session使用该Session.bulk_insert_mappings()方法同时插入20k条数据。

我的具体问题:

  • 我试图了解 SQL Server 端的幕后情况。是否有所有批量插入的队列,并且每个批量插入都按照进来的顺序一个一个地执行?还是所有的插入都是同时进行的,并行的?
  • 我们还假设没有两个不同的连接会尝试插入相同的记录(基于主键),但是如果两个并行连接尝试插入会导致 PK 违规的记录怎么办?
  • 如果我们要求 SQL Server 2008 与 2017,上述问题的答案是否不同?
  • Microsoft 是否有关于此的任何类型的文档?

sql-server-2008 sql-server concurrency bulk-insert sql-server-2017

2
推荐指数
1
解决办法
318
查看次数