Pervez Choudhury Asked: 2014-04-08 08:44:40 +0800 CST2014-04-08 08:44:40 +0800 CST 2014-04-08 08:44:40 +0800 CST SQL Server Bulk Copy在查询表时会导致超时吗 772 在 SQL Server 2008 R2 中,使用BulkCopy上传数千行数据是否会导致在同一张表上进行查询时出现问题? 具体来说,它会导致查询超时吗? 被查询的表有数百万行。 sql-server bulk 1 个回答 Voted Best Answer Mark Wilkinson 2014-04-08T09:26:54+08:002014-04-08T09:26:54+08:00 它绝对可以。 就像任何其他插入操作一样,它需要锁。如果获得足够多的锁,它将升级为全表锁(假设表允许)。任何像这样的插入操作都会阻止任何其他试图读取数据的东西,除非为这些查询指定了 NOLOCK(我在这里不推荐)。 如果您有兴趣,您实际上可以设置跟踪以查看正在使用哪些类型的锁。只需设置一个 Profiler 跟踪以获取“Locks: Acquired”和“Locks: Escalation”,然后进行批量插入。 警告的话,Profiler 可能会影响性能,所以我会在开发服务器上运行跟踪,或者如果您必须在生产中运行它,导出脚本并将其作为服务器端跟踪执行。
它绝对可以。
就像任何其他插入操作一样,它需要锁。如果获得足够多的锁,它将升级为全表锁(假设表允许)。任何像这样的插入操作都会阻止任何其他试图读取数据的东西,除非为这些查询指定了 NOLOCK(我在这里不推荐)。
如果您有兴趣,您实际上可以设置跟踪以查看正在使用哪些类型的锁。只需设置一个 Profiler 跟踪以获取“Locks: Acquired”和“Locks: Escalation”,然后进行批量插入。
警告的话,Profiler 可能会影响性能,所以我会在开发服务器上运行跟踪,或者如果您必须在生产中运行它,导出脚本并将其作为服务器端跟踪执行。