给sql server 数据库表建立索引,状态一直为suspended
我这里有汗几十亿数据的数据表,要为表建立聚集型索引和非聚集性索引,之前的时候建立一次索引大概在7小时左右,但是现在数据表删除了一部分数据,要重新创建索引,结果建立一次索引大概要24小时,后来再建立索引,通过
select *
from
sys.dm_exec_requests
查询事物状态时,status 为:suspended,然后我取消操作重新执行创建索引,状态依然为suspended.
备注:此数据表被收缩过,我想建立索引,怎么样才能快速建立呢 索引?supended?阻塞
[解决办法]
如果有分区就不用再建分区了,直接在分区上建索引,而不要在整个表上建索引。
[解决办法]
根据表数据量,创建索引、重建或重组索引的时间会随着数据量的增加而增加
过亿的表肯定要很长的时间
进程状态为suspended:会话正在等待事件(如 I/O)完成
说明操作正在进行中,是正常现象
创建索引是会锁表的,阻塞其他资源,尤其这么长时间。。。
分区还分好几亿这个没办法了,我知道的唯一途径就是尽量把表分小一点,如果业务或者其他因素不行的话,再看看其他大神的回答吧呵呵~
[解决办法]