Sql server 如果取消索引重组任务,是否有可能导致数据库损坏?

Sql server 如果取消索引重组任务,是否有可能导致数据库损坏?,sql-server,maintenance,Sql Server,Maintenance,在计划维护窗口中,我手动重建/重新组织了SQL Server 2012数据库的一些索引。这是一项脱机任务,因为我的SQL Server许可证不允许联机重建/重新组织 所以,我有一个相当大的表,有10000000行。它有14%的碎片,我使用MS SQL Server Management Studio重新组织索引 我的问题是重组操作花了10分钟完成(绿色标记和成功标记),但Management Studio窗口尚未关闭。我等了大概3个小时,没别的了。旋转的轮子还在旋转 我现在该怎么办?强行关窗?是

在计划维护窗口中,我手动重建/重新组织了SQL Server 2012数据库的一些索引。这是一项脱机任务,因为我的SQL Server许可证不允许联机重建/重新组织

所以,我有一个相当大的表,有10000000行。它有14%的碎片,我使用MS SQL Server Management Studio重新组织索引

我的问题是重组操作花了10分钟完成(绿色标记和成功标记),但Management Studio窗口尚未关闭。我等了大概3个小时,没别的了。旋转的轮子还在旋转

我现在该怎么办?强行关窗?是否强制关闭Management Studio窗口?我很担心,因为活动监视器显示tempdb中仍有一个正在运行的查询,我担心会损坏表

如何找到当前任务是否已完成?我的目标是确定强制关闭生产数据库中的ManagementStudio是否安全

注意:我已经在另一台机器上用最近的备份和相同的CPU/RAM测试了相同的操作。整个手术只用了15分钟


感谢您的建议。

否,但索引可能会损坏。如果是这样,您可以删除它并重新构建它

索引重组始终在线。此外,索引重新组织在内部以小批量工作,频繁提交。它可以随时中断,下一次运行将从上次提交的位置恢复(严格地说,将从开始处恢复,但实际工作将从停止的位置恢复,没有任何中间更改)。如果中断,没有大的待办事项要回滚。同样,这只适用于
重组

现在我无法帮助您进行SSMS阻塞,您可能已经做出了决定。但我要说的是,你越早学会避免使用ManagementStudio内置的可视化工具,你的生活就会越好。运行T-SQL命令


此外,许多人建议使用的索引维护脚本。

您是否检查了此时存在的死锁。理想情况下,如果没有死锁,它应该在15分钟左右完成。活动监视器不会显示任何死锁。请查看sys.dm_exec_请求和sys.dm_os_waiting_任务,了解它在等待什么。但一般来说,您的问题的答案是“不,您不会因为取消而损坏数据库”。SQL Server会记录所有操作,包括索引维护。当您取消时,它将不得不回滚已完成的任何操作(这也需要时间),但这样做不会损坏数据库。索引不会因为重新组织而损坏。如果索引已损坏,则表示数据库已损坏。在实际损坏的情况下,您需要运行
DBCC CHECKDB
,而不是简单地重建索引。如果索引损坏,引擎就不使用它。您可以删除并重新创建它。您将想知道索引损坏的原因。SQL Server本身不会随机损坏索引,除了引擎中存在严重的错误。如果遇到损坏的索引,运行<代码> DCBCC CHECKDB ,检查您的硬件和软件条件,并考虑从备份恢复数据库。损坏的索引不太可能是您唯一的问题,只是重新创建它将掩盖真正的问题。