SQL Server 上的后台索引创建

0 sql-server azure-vm sql-server-2017

我没有维护计划,但我看到在后台创建索引(低 spid)。我不知道正在创建什么索引或为什么。使用标准 SQL Server 2017 - Azure 上安装了 SQL 的 VM。

sp_who 的片段

我检查并没有看到自动索引管理的任何地方。您可以配置备份等,但我找不到索引位置。

我尝试EXEC sp_WhoIsActive @show_system_spids = 1;并得到了这个结果:

(542701ms)RESOURCE_SEMAPHORE
Run Code Online (Sandbox Code Playgroud)

我认为正在发生的事情是我有一个“混乱的索引”并且系统正在尝试修复它。我无法删除任何索引或重建它。至少这是我的猜测。

Jos*_*ell 5

这听起来很像Azure SQL 数据库的自动优化功能。特别是,其中一种选择是:

CREATE INDEX - 识别可以提高工作负载性能的索引,创建索引,并自动验证查询性能是否有所提高。

您可以在此处查看这些设置:

嗨拉马克

不过,您提到您使用的是 SQL Server 2017 - 所以这本身并不适用于您。

这可能是托管实例吗?文档目前声明自动索引管理在 MI 中不可用,但这可能与我听到的有所不同。


由于您在 Azure VM 上,这不会是自动索引调整。最好的办法是在发生这种情况时通过运行以下sp_WhoIsActive命令来尝试捕获有关此过程的更多信息(几个月前在类似的问答中建议这样做):

EXEC sp_WhoIsActive @show_system_spids = 1;
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,数据库启动/崩溃恢复过程似乎正在前滚索引创建。您会看到数据库处于非联机状态,并在错误日志中看到恢复进度消息。