Sql server SQL Server延迟提交插入的数据

Sql server SQL Server延迟提交插入的数据,sql-server,Sql Server,我在SQL Server中有一个存储过程,用于检查来自移动设备的重复订单。如果没有从服务器获得响应,设备将在大约1/2秒内重试。即使已插入副本,也偶尔不会读取副本。SQL Server在提交插入的数据时是否可能延迟1/2秒?是开始使用脏读的解决方案吗?看起来您正在进入一个新的阶段 i、 e 您可以在数据上设置一个唯一的索引来防止重复,而不是对重复进行过程检查吗?看起来您正在进入一个新的阶段 i、 e 您可以在数据上设置一个唯一的索引来防止重复,而不是对重复进行过程检查吗?在我看来,使用脏读从来都

我在SQL Server中有一个存储过程,用于检查来自移动设备的重复订单。如果没有从服务器获得响应,设备将在大约1/2秒内重试。即使已插入副本,也偶尔不会读取副本。SQL Server在提交插入的数据时是否可能延迟1/2秒?是开始使用脏读的解决方案吗?

看起来您正在进入一个新的阶段

i、 e


您可以在数据上设置一个唯一的索引来防止重复,而不是对重复进行过程检查吗?

看起来您正在进入一个新的阶段

i、 e


您可以在数据上设置一个唯一的索引来防止重复,而不是对重复进行过程检查吗?

在我看来,使用脏读从来都不是一个解决方案。唯一性应该通过约束来实现,或者在某些情况下使用before(或代替)触发器。如果没有关于过程的详细信息,我无法给出更具体的建议,但我相信,通过在存储过程主体中使用事务的可序列化隔离级别,可以解决这个问题。此外,您可以考虑使用列来避免丢失的更新问题。

在我看来,使用脏读取决不是解决方案。唯一性应该通过约束来实现,或者在某些情况下使用before(或代替)触发器。如果没有关于过程的详细信息,我无法给出更具体的建议,但我相信,通过在存储过程主体中使用事务的可序列化隔离级别,可以解决这个问题。也,您可以考虑使用列来避免丢失的更新问题。由于服务器上可能会阻塞插入的其他工作,SQLServer很容易被延迟半秒。当然,由于服务器上可能会阻塞的其他工作,SQL Server很容易被延迟半秒。insert.a1ex07和@webturner,感谢您的回复。使用唯一约束的困难在于,在将请求提交给另一个将处理订单的系统之前,我要检查是否存在潜在的副本。因此,记录的唯一性不是目标。目标是在订单已经发送并确认的情况下,不向其他系统提交订单。因此,我确实需要知道是否存在与我刚刚收到的内容重复的行,以便做出一个编程决策。这就是为什么在这个特殊的案例中我会考虑阅读未注释。希望这能让事情变得更清楚。正如@webturner所建议的,这是一种竞赛条件。它是在访问SQL Server中相同数据的WCF线程之间进行的。感谢a1ex07以及宝贵的信息。a1ex07和@webturner,感谢您的回复。使用唯一约束的困难在于,在将请求提交给另一个将处理订单的系统之前,我要检查是否存在潜在的副本。因此,记录的唯一性不是目标。目标是在订单已经发送并确认的情况下,不向其他系统提交订单。因此,我确实需要知道是否存在与我刚刚收到的内容重复的行,以便做出一个编程决策。这就是为什么在这个特殊的案例中我会考虑阅读未注释。希望这能让事情变得更清楚。正如@webturner所建议的,这是一种竞赛条件。它是在访问SQL Server中相同数据的WCF线程之间进行的。也感谢a1ex07提供了宝贵的信息。

Time    SP Call 1        SP Call 2
0.00    Dup Exists?
0.10      ...            Dup Exists?
0.20        No               No
0.30    Insert New         ...
0.40                     Insert New