You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重建索引进程未在sys.dm_exec_requests中显示,求解决方案及取消后果

问题排查与处理建议

一、先确认索引重建进程的状态

  • 扩展查询范围,用以下语句排查相关会话和请求:
    -- 查找包含ALTER INDEX REBUILD的会话
    SELECT s.session_id, s.status, t.text
    FROM sys.dm_exec_sessions s
    CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) t
    WHERE t.text LIKE '%ALTER INDEX%REBUILD%'
    
    -- 查看当前事务锁信息,确认是否有相关锁存在
    SELECT request_session_id, resource_type, resource_description, request_mode
    FROM sys.dm_tran_locks
    WHERE resource_database_id = DB_ID()
    
  • 检查索引是否已完成重建:
    SELECT name, state_desc
    FROM sys.indexes
    WHERE object_id = OBJECT_ID('你的目标表名')
    
    若state_desc返回REBUILT,说明操作已完成;也可通过sys.dm_db_index_physical_stats对比重建前后的索引碎片率验证结果。
  • 查看SQL Server错误日志,确认是否存在索引重建进程异常终止、服务器重启等记录(可通过SSMS的「管理」→「SQL Server日志」查看)。
  • 验证表的可用性:如果是离线重建,操作期间表会被独占锁,若此时能正常读写该表,说明重建进程大概率已结束(完成或失败)。

二、取消重建操作的后果

  • 如果进程实际仍在运行(未通过sys.dm_exec_requests查到):执行取消操作(如KILL 目标会话ID)后,SQL Server会回滚已完成的重建步骤,回滚耗时可能与已运行的7小时相当甚至更长;若为离线重建,回滚期间表会持续处于锁定状态,无法正常访问。
  • 如果进程已终止(完成/失败/服务器重启):取消操作无任何影响,因为目标进程已不存在。

内容的提问来源于stack exchange,提问作者illimite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:55:13