日期:2014-05-17  浏览次数:20480 次

急 请教 sql 数据量大,导致报错的问题
请问由于数据量过大,导致C#调用sql的语句时候发生报错,如何处理呢? 数据量有几万条,以下是我的update sql的语句。

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[update_csjcsh]
(
@xlmc int

)
AS
SET NOCOUNT OFF;
update T_bc_bcxcb
set sfcsj='0' 
where xlmc=@xlmc 

update T_bc_lxjsdxxb
  set sfyfg='0'
where xlmc=@xlmc

------解决方案--------------------
你更新的两个表有没有触发器?
如果有的话,两个表是不是会互相更新?
------解决方案--------------------
语句也不复杂,看看更新表是不是有其他的关联造成的。
------解决方案--------------------
数据库是否添加了什么限制?查看一下延时发生时的数据库锁状况。

SQL code

SELECT resource_type, resource_associated_entity_id,
    request_mode,request_status
FROM sys.dm_tran_locks dml INNER JOIN
        sys.dm_tran_current_transaction dmt
        ON dml.request_owner_id = dmt.transaction_id;

------解决方案--------------------
C# code
SET NOCOUNT OFF;
update T_bc_bcxcb
set sfcsj='0'  
where xlmc=@xlmc  

update T_bc_lxjsdxxb
  set sfyfg='0'
where xlmc=@xlmc