0 sql-server azure-vm sql-server-2017
我没有维护计划,但我看到在后台创建索引(低 spid)。我不知道正在创建什么索引或为什么。使用标准 SQL Server 2017 - Azure 上安装了 SQL 的 VM。
我检查并没有看到自动索引管理的任何地方。您可以配置备份等,但我找不到索引位置。
我尝试EXEC sp_WhoIsActive @show_system_spids = 1;并得到了这个结果:
(542701ms)RESOURCE_SEMAPHORE
Run Code Online (Sandbox Code Playgroud)
我认为正在发生的事情是我有一个“混乱的索引”并且系统正在尝试修复它。我无法删除任何索引或重建它。至少这是我的猜测。
这听起来很像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)
在您的特定情况下,数据库启动/崩溃恢复过程似乎正在前滚索引创建。您会看到数据库处于非联机状态,并在错误日志中看到恢复进度消息。