我有一个SQL Server 2008数据库,我对这个数据库有疑问,我不明白。
导致问题的步骤是:
现在我运行此查询
选择TOP 1000 * 来自作者(READUNCOMMITTED)
它执行并返回结果但是当我删除WITH(READUNCOMMITTED)提示时,它被主数据库上运行的进程锁定,该进程仅出现在具有命令[DB STARTUP]的活动监视器上,并且没有显示结果。 那么什么是DB STARTUP命令,如果这是一个问题,我该如何解决呢?
提前谢谢。
答案 0 :(得分:4)
我怀疑您的用户数据库仍在尝试回滚您取消的交易。一般的经验法则表明,中止的事务需要花费大约相同的时间或更多时间才能运行。
即使SQL Server停止并启动,也无法避免回滚。
您可以运行查询WITH(READUNCOMMITTED)的原因是它忽略了与正在回滚的事务关联的锁。您的查询结果被认为是不可靠的,但具有讽刺意味的是,结果可能是您希望看到的,因为阻止过程是回滚。
最好的解决方案是等待它,如果你能负担得起的话。您可能能够找到阻止阻塞过程的方法,但是您应该关注数据库的完整性。