SQL Server IsolationLevel.ReadUncomunt危险

时间:2013-02-05 20:06:57

标签: sql-server isolation-level

我目前正在一个旧系统中的多线程ReadUncommitted事务中执行以下操作:

  1. 每个线程都会获得一组唯一的数据。这些主题之间永远不会有重复。
  2. 线程从一堆表(仅读取)中收集数据以获取其唯一数据集。
  3. 根据收集的数据,每个线程在内存中创建n个新实体电子邮件,供以后写入。
  4. 然后,对于每个电子邮件实体,线程必须检查表中是否已存在电子邮件实体,以避免重复。这涉及比较x列数。
  5. 之后,线程编写了尚不存在的电子邮件实体,知道它们将是干净的,总是插入线程,这个应用程序是唯一可以编写这些类型的电子邮件实体并且线程始终处理唯一数据的人集。
  6. 然后线程提交。
  7. 现在我知道这不是一个漂亮的设计,但重构整个系统是一项艰巨的任务。线程化的原因纯粹是为了获得更好的性能。

    我的问题是:

    • 在我的案例中使用ReadUncommitted隔离级别是否有任何危险?

    我最近一次又一次地阅读隔离级别,只是为了确保,但我对SQL Server还不熟悉。

    编辑:我应该提到切换到使用ReadUncommitted隔离级别的原因是我希望线程能够同时提交,以获得最佳性能。

0 个答案:

没有答案