问题描述
我在 Azure 上有两个数据库,比如 DBLive
和 DBCrud
。
DBLive
包含提供真实数据的表。有一张表的 CRUD 操作不在 DBLive
上完成,而是在 DBCrud
上完成。表结构在 DBCrud
上复制 - 因此在 DBCrud
上执行 CRUD 操作后,我们通过执行 sqlbulkcopy 同步到 DBLive
。
鉴于有很多记录,批量复制需要时间。在此期间,应用程序仍必须向用户提供来自 SELECT
的数据(A DBLive
查询 EF6,我们称之为 STATUSQUERY),即使是脏的 - 即使它们看起来像在启动批量复制之前一样。但考虑到同步过程,查询挂起并超时。
最初我使用 sqlbulkcopyOptions.TableLock ,然后使用带有 IsolationLevel.ReadUncommitted 的外部事务。这仍然不能解决问题。选择查询仍然挂起。由于 DBA 政策,我无法使用 IsolationLevel.Snapshot
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)