BCP queryout 因 READ COMMITTED 事务隔离而挂起

BCP queryout hangs with READ COMMITTED transaction isolation

使用 SQL Server 2016 和 bcp 版本 14

我的查询 returns 大约 16k 行,并在 SSMS 中以默认(已提交)隔离级别快速运行完成,但是如果我尝试使用 BCP 保存同一查询的输出,该工具将挂起。如果我在 BCP 查询中将隔离级别设置为 READ UNCOMMITTED,那么它会很快完成。

关于为什么 BCP 不需要对这个特定查询进行事务隔离有什么想法吗?我对数据库中没有 BCP 问题的其他表有其他查询。

实际上,我的问题中描述的 bcp 行为是由于 table 被查询的应用程序锁定,该应用程序行为不当并使连接搁浅,使 table 处于锁定状态,直到 DBA 终止会话第二天!

所以bcp没有什么神秘的。