Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 主数据库数据库启动问题_Sql_Sql Server_Sql Server 2008_Locking - Fatal编程技术网

Sql 主数据库数据库启动问题

Sql 主数据库数据库启动问题,sql,sql-server,sql-server-2008,locking,Sql,Sql Server,Sql Server 2008,Locking,我有一个SQL Server 2008数据库,这个数据库有一个我不理解的问题 导致问题的步骤包括: 我运行了一个SQL查询来从另一个名为authorAff的表更新名为authors的表 authors表是123385300条记录,authorsAff表是139036077 查询执行大约花了7天时间,但没有完成 我决定用另一种方式取消查询 我运行查询的连接突然断开,因此数据库处于恢复状态,直到查询取消 由于一些电力问题,服务器多次关闭 数据库花了大约两天时间才恢复 现在当我运行这个查询时 选择前

我有一个SQL Server 2008数据库,这个数据库有一个我不理解的问题

导致问题的步骤包括:

  • 我运行了一个SQL查询来从另一个名为authorAff的表更新名为authors的表
  • authors表是123385300条记录,authorsAff表是139036077
  • 查询执行大约花了7天时间,但没有完成
  • 我决定用另一种方式取消查询
  • 我运行查询的连接突然断开,因此数据库处于恢复状态,直到查询取消
  • 由于一些电力问题,服务器多次关闭
  • 数据库花了大约两天时间才恢复
  • 现在当我运行这个查询时

    选择前1000名* 来自具有(重新提交未提交)的作者

它执行并返回结果,但当我使用(READUNCOMMITTED)提示删除时,它会被主数据库上运行的进程锁定,该进程仅在活动监视器上使用命令[DB STARTUP]显示,并且不会显示任何结果。 那么DB STARTUP命令是什么?如果它是一个问题,我如何解决它


提前谢谢。

我怀疑您的用户数据库仍在尝试回滚您取消的事务。一般的经验法则表明,中止的事务回滚所需的时间与运行所需的时间大致相同,甚至更长

即使SQL Server停止并启动,也无法避免回滚

可以使用(READUNCOMMITTED)运行查询的原因是它忽略了与正在回滚的事务相关联的锁。您的查询结果被认为是不可靠的,但具有讽刺意味的是,由于阻塞过程是回滚过程,因此结果可能是您希望看到的结果


最好的解决办法是等待,如果你能负担得起的话。您可能能够找到终止阻塞进程的方法,但是您应该关心数据库的完整性。

您是否尝试过在数据库上运行
dbcc checkdb