无法恢复禁用的索引

时间:2019-03-27 00:48:10

标签: sql sql-server azure indexing azure-sql-database

我已在Azure SQL服务器数据库上禁用了索引,然后开始使用resumable=on选项重建索引。中断重建后,由于索引已禁用,我无法恢复或中止重建,并且出现错误:

  

无法对禁用的索引执行指定的操作

最糟糕的是,当出现另一个错误时,我无法创建任何其他索引:

  

无法对ID为1918629878的“对象”执行以下操作:   当前有更多索引处于可恢复索引重建状态。请   有关更多详细信息,请参考sys.index_resumable_operations。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

请尝试使用以下提供的语句中止在线索引操作:

BridgingManager.fromContext(context).setConfig(
        BridgingConfig.Builder(context, false)
                .addExcludedTag("not_this_one")
                .build()
)

答案 1 :(得分:0)

使用sys.index_resumable_operations监视并检查当前执行状态以恢复可恢复的索引。

SELECT total_execution_time, percent_complete, name,state_desc,last_pause_time,page_count
FROM sys.index_resumable_operations;

如果当前状态为PAUSED,则可以在完成%后看到联机可恢复索引重建操作。如果索引处于PAUSED状态,则无法删除索引。如果尝试这样做,将会收到此错误。

  

无法对ID为1918629878的“对象”执行以下操作:   当前有更多索引处于可恢复索引重建状态。请   有关更多详细信息,请参考sys.index_resumable_operations。

要恢复在线索引操作,需要使用以下查询。

ALTER INDEX IX_tablename ON [Table_Name]  RESUME

有关更多信息,请检查此Resumable Online Index Create in SQL Server