首页 > 解决方案 > 在锁定时查询 SQL Server 表

问题描述

我在 Azure 上有两个数据库,比如说DBLiveDBCrud.

DBLive包含提供真实数据的表。有一张表,其 CRUD 操作不是在,DBLive而是在 上完成DBCrud。表结构被复制DBCrud- 所以在对我们进行 CRUD 操作之后,我们通过执行 SQLbulkcopyDBCrud来进行同步。DBLive

鉴于有许多记录,批量复制需要时间。在此期间,应用程序仍必须为用户提供数据(SELECT查询 EF6,让我们称之为 STATUSQUERY),DBLive即使它们是脏的 - 即使它们看起来像在启动批量复制之前。但是考虑到同步过程,查询会挂起并超时。

最初我使用 SQlbulkCopyOptions.TableLock ,然后使用带有 IsolationLevel.ReadUncommitted 的外部事务。这仍然不能解决问题。选择查询仍然挂起。IsolationLevel.Snapshot由于 DBA 政策,我无法使用。

标签: sql-servertransactionsentity-framework-6sqlbulkcopytransaction-isolation

解决方案


推荐阅读