SQLSERVER2000的数据库,用户数据库的特点是插入数据的事务操作很频繁,都是几百万条数据的大表(且经常定时大量删除过时数据),数据库运行一段时间,用DBCC CHECKTABLE有时会发现一致性错误(时间不确定)。错误消息 8952,消息 8956之类,知道是某表索引出问题了,虽然是逻辑错误可以修复。但是这种出现索引损坏的表,用DELETE删除大量过时数据就会出问题,删除数据事务无法进行下去,必须逻辑修复了才行。我的问题是搞不清楚,索引为何会出现这种损坏,这种损坏的情况可以避免吗?谢谢

解决方案 »

  1.   

    以我的经验,SqlServer2000数据库的表的索引失效时,会导致软件中无法查询到单据,在SqlServer中找到那个表的索引,点编辑sql,点执行,相当于重建了索引,就正常了。但也是会反复出现索引损坏需重建
      

  2.   

    http://topic.csdn.net/t/20030722/13/2057455.html
      

  3.   

    http://topic.csdn.net/t/20030722/13/2057455.html
      

  4.   

    要这样?http://topic.csdn.net/t/20030722/13/2057455.html
      

  5.   


    目前来看,数据查询的问题不大,主要索引如果出问题,大幅度Delete数据如果遇到坏的索引部分,Delete操作无法完成了,因为错误级别较高,用于删除数据的数据库链接会断掉
      

  6.   


    多谢,推荐的帖子我看了,问题是我不是想了解如何修复次错误,用DBCC CHECHDB之类就可以,但是修复需要单用户,另外我这个库使用中的也没有条件完成这个操作。关键是数据库一直正常使用,当然插入删除的事务很多,但是数据库索引也不能无故损坏,尤其对7*24的应用。我想知道产生这些问题的原因,如何才能避免,那些需要7*24运行的数据库如何处理这类问题。不知道是否是软件BUG,新SP补丁包能否解决,也许用户这个库没装SP4。