我在SQL Server 2008 R2下发生了以下问题而不是删除触发器的超时问题。只有在很多(> 6个左右)CustomFieldOption
在同一个事务中被删除才会出现。INSTEAD OF DELETE触发器超时
CREATE TRIGGER dbo.[DeleteCustomFieldOptionInsteadOfTrigger] ON dbo.[CustomFieldOption] INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON;
UPDATE ucf SET ucf.PendingCustomFieldOptionIdValue = NULL, ucf.PendingProposedStateId = NULL
FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.PendingCustomFieldOptionIdValue
WHERE ucf.CurrentCustomFieldOptionIdValue IS NOT NULL;
SET NOCOUNT ON;
DELETE ucf FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.PendingCustomFieldOptionIdValue
WHERE ucf.CurrentCustomFieldOptionIdValue IS NULL;
SET NOCOUNT ON;
DELETE ucf FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.CurrentCustomFieldOptionIdValue;
SET NOCOUNT ON;
DELETE cfo FROM CustomFieldOption cfo
INNER JOIN deleted d ON d.CustomFieldOptionId = cfo.CustomFieldOptionId;
SET NOCOUNT OFF;
END
我认识到可能需要进一步的上下文(我会根据需要更新问题) - 我在这里做了什么明显错误的事吗?
为'死锁'和'死锁图表'运行一个分析器跟踪 –
@Mitch小麦:你能更具体一点吗?请回答:我需要做的跟踪? – DanP
你的表是否有适当的索引,用于正在进行的'删除'连接?这些陈述的执行计划是什么样的? –