日期:2014-05-17  浏览次数:20618 次

表性能问题。重建索引超时,紧急求助。
用DBCC DBREINDEX('aaa')对aaa表重建索引,会一直没有响应。
SELECT * FROM AAA 查出60多万笔,能查出来
DBCC checktable('aaa') 没报错
对aaa改成会提示超时。

将aaa的脚本创建一个新的表bbb,将aaa的60多万笔记录插入到bbb,这个表重建索引才10多秒钟就好了

aaa表是不是有什么问题?要如何处理呢?

------解决方案--------------------
你新建的表没有人用,所以快是可以理解,但是你那个aaa的表可能在重建的时候还有人在用,造成了阻塞,你试试没人用的时候再重建一下
------解决方案--------------------
引用:
Quote: 引用:

你找出最高wait_time的那些,然后看看他们的session_id ,用dbcc inputbuffer来看看他们是在干什么,还有wait_type,要不你把非null的结果贴出来看看


第一个语句查出有LASTWAITTYPE的


出现这个等待是正常现象 。reindex的时候需要对data进行排序,而且还要读data page,所以SQL  Server Scheduler会经常做yield,你reindex最少在下面两种情况做yield
1.如果SQL运行超过4ms,每次读page的时候就yield一次
2.每对64kb排序一次就需要yield一次。