Sql server 在生产环境中创建非聚集索引-如果需要太长时间,是否可以取消?

Sql server 在生产环境中创建非聚集索引-如果需要太长时间,是否可以取消?,sql-server,indexing,Sql Server,Indexing,我想在我的生产环境中创建一些非聚集索引。创建两个的速度相当快(大约10分钟),但其中一个需要7.30小时,另一个在测试环境中需要2.30小时 创建7.30小时索引时无法工作,因为它会阻塞表。我有一个晚上9小时的时间表。但是,如果生产系统比测试慢,并且它不会在早上完成,那该怎么办呢。我可以取消索引创建,表就不会被阻止,用户可以正常工作吗?然后我在前几天晚上再次点击create查询,它会继续吗?还是这很危险?我没有企业版,只有标准版 版本:Microsoft SQL Server 2012-11.0

我想在我的生产环境中创建一些非聚集索引。创建两个的速度相当快(大约10分钟),但其中一个需要7.30小时,另一个在测试环境中需要2.30小时

创建7.30小时索引时无法工作,因为它会阻塞表。我有一个晚上9小时的时间表。但是,如果生产系统比测试慢,并且它不会在早上完成,那该怎么办呢。我可以取消索引创建,表就不会被阻止,用户可以正常工作吗?然后我在前几天晚上再次点击create查询,它会继续吗?还是这很危险?我没有企业版,只有标准版


版本:Microsoft SQL Server 2012-11.0.5058.0(X64)2014年5月14日18:34:29 Windows NT 6.3(Build 9600:)上的标准版(64位)

您需要的是可恢复的在线索引操作

不幸的是,联机索引操作不适用于标准版(您需要企业版)。可恢复的可从SQL Server 2017及更高版本获得


您使用什么版本的SQL server?将
SELECT@@Version
的结果添加到您的问题中。@DenisRubashkin 2012-11.0.5058.0 StandardYes,您只需在索引运行时取消索引创建即可。您可能知道,索引是不断更新的。当你取消它的创建时,它就消失了。至少,这是默认行为。好的,这是否意味着当我在2012 sql server中取消索引创建时,它不可恢复,但也不会有任何可能导致问题的残留?我注意到取消手术可能需要一段时间。。。当它运行40分钟时,需要2分钟才能取消。这取决于。。。事务将被回滚,我无法自信地估计该操作将花费多少时间。您应该设法找出索引创建时间过长的原因。例如,如果您的数据文件无法容纳新索引,并且必须增长,并且禁用了即时文件初始化,则索引创建操作的时间可能会显著增加。