BizTalk Wcf_自定义-SQL死锁问题

BizTalk Wcf_自定义-SQL死锁问题,biztalk,biztalk-2010,biztalk-2009,biztalk2006r2,biztalk-orchestrations,Biztalk,Biztalk 2010,Biztalk 2009,Biztalk2006r2,Biztalk Orchestrations,我的DB SP UPDATEClientID如下所示。它将客户端ID作为参数。 我从WCF自定义适配器在一秒钟内呼叫了SP 50次。然后我看到了SQL死锁问题 在我的场景中,我必须在一秒钟内调用UPDATEClientID SP 50次。如何解决SQL死锁问题 CREATE PROCEDURE [dbo].[UPDATEClientID] @ClientID VARCHAR(50) = NULL AS BEGIN SET NOCOUNT ON; UPDATE C

我的DB SP UPDATEClientID如下所示。它将客户端ID作为参数。
我从WCF自定义适配器在一秒钟内呼叫了SP 50次。然后我看到了SQL死锁问题

在我的场景中,我必须在一秒钟内调用UPDATEClientID SP 50次。如何解决SQL死锁问题

CREATE  PROCEDURE [dbo].[UPDATEClientID]
    @ClientID VARCHAR(50) = NULL

AS
BEGIN

    SET NOCOUNT ON;

    UPDATE  CleintDetails
    SET     STATUS = 'Y'
    WHERE   ClientID = @ClientID            

END
您真的必须在一秒钟内调用此存储过程50次吗?还是恰好每秒调用50次

一些选择:

  • 在发送端口上设置有序交付。这将序列化请求。然而,它将慢几个数量级
  • 使用锁提示优化语句,例如ROWLOCK

  • 存储过程代码正在BizTalk server默认事务级别可序列化下执行。将其更改为“已提交”

    我们可以通过在存储过程中执行以下语句来设置事务级别


    SET TRANSACTION ISOLATION LEVEL READ COMMITTED

    ANSWER-存储过程代码正在BizTalk server默认事务级别serializable下执行。将其更改为“已提交”。我们可以通过在存储过程中执行以下语句来设置事务级别。设置事务隔离级别READ COMMITED