0

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

  1. 每个线程都有一组独特的数据来处理。这些线程中永远不会有重复项。
  2. 线程从一组表(仅读取)中收集数据以获取其独特的数据集。
  3. 基于收集到的数据,每个线程在内存中创建 n 个新实体,电子邮件,以供以后写入。
  4. 然后,对于每个电子邮件实体,线程必须检查该电子邮件实体是否已存在于表中,以避免重复。这涉及比较 x 列数。
  5. 之后,线程写入尚不存在的电子邮件实体,知道它们将始终作为线程干净插入,并且此应用程序是唯一可以编写此类电子邮件实体的应用程序,并且线程始终在唯一的数据集上工作。
  6. 然后线程提交。

现在我知道这不是一个漂亮的设计,但重构整个系统是一项艰巨的任务。线程的原因纯粹是为了获得更好的性能。

我的问题是:

  • ReadUncommitted在我的情况下使用隔离级别有什么危险吗?

最近,我一次又一次地阅读隔离级别,只是为了确定,但我对 SQL Server 还没有那么丰富的经验。

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

4

0 回答 0