我在SQL Server 2005中有一个包含810条记录的表,如下所示:
当我尝试运行以下查询时:
DELETE FROM Attachments
WHERE UniqueId = 1122 AND FileId = 923
它运行3分钟以上但没有完成。该表非常小,文件大小为4900字节,我只是想删除一条记录。任何人都有什么想法可以减缓这件事的速度?
编辑: 我非常感谢你们每个人试图回答我的问题。我会为你们每个人+1,但我还不能这样做。我们终于找到了答案......我们不得不重建索引。重建时间比我们预期的要长得多(10分钟左右),但一旦我们完成,表恢复正常运行。显然有人关闭了该数据库的维护,忘了重新打开它。希望其他人可以从我们的不幸中受益。
答案 0 :(得分:1)
当然,你可以有一个正在做其他工作的触发器。您可以阻止其他进程。或者您可以打开cacade删除,而不是删除一条记录,您正在删除数百万。或者你可能需要检查数百个FK。
但请先检查阻止!
答案 1 :(得分:0)
也许其他人正在进行插入或更新操作,这会锁定您使用的表。