在删除和运行更新统计信息时遇到死锁

时间:2014-05-06 04:16:55

标签: sql deadlock sybase sybase-ase

我正在运行一个从表中删除数据的存储过程,过程如下:

SET rowcount 10000
WHILE ( @rows_deleted > 0 )
BEGIN

BEGIN TRAN

DELETE TABLE1 WHERE status = '1'

SELECT @rows_deleted = @@rowcount

COMMIT TRAN

END

此过程正在运行时,更新统计信息也在同一个表上运行。 表的锁定方案是所有页面。 我想知道锁定是否所有页面如何遇到死锁? 这张桌子上没有其他东西在运行。

我正在使用Sybase 12.5 ASE

1 个答案:

答案 0 :(得分:0)

发现更新统计信息确实造成了死锁。它正在桌面上采取共享锁定。由于表具有所有页面的锁定方案,因此删除必须等待它完成。但是,Sybase不是长时间阻止删除查询,而是选择将其作为受害者终止。