数据库索引损坏的问题(一致性错误)

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

我的问题是搞不清楚,索引为何会出现这种损坏,这种损坏的情况可以避免吗?谢谢
...全文
1021 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayang3178 2010-02-22
  • 打赏
  • 举报
回复
引用 6 楼 you_tube 的回复:
要这样?http://topic.csdn.net/t/20030722/13/2057455.html


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

不知道是否是软件BUG,新SP补丁包能否解决,也许用户这个库没装SP4。
ayang3178 2010-02-22
  • 打赏
  • 举报
回复
引用 3 楼 daishaodong 的回复:
以我的经验,SqlServer2000数据库的表的索引失效时,会导致软件中无法查询到单据,在SqlServer中找到那个表的索引,点编辑sql,点执行,相当于重建了索引,就正常了。

但也是会反复出现索引损坏需重建


目前来看,数据查询的问题不大,主要索引如果出问题,大幅度Delete数据如果遇到坏的索引部分,Delete操作无法完成了,因为错误级别较高,用于删除数据的数据库链接会断掉
you_tube 2010-02-22
  • 打赏
  • 举报
回复
you_tube 2010-02-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030722/13/2057455.html
you_tube 2010-02-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030722/13/2057455.html
daishaodong 2010-02-22
  • 打赏
  • 举报
回复
以我的经验,SqlServer2000数据库的表的索引失效时,会导致软件中无法查询到单据,在SqlServer中找到那个表的索引,点编辑sql,点执行,相当于重建了索引,就正常了。

但也是会反复出现索引损坏需重建
999朵玫瑰 2010-02-22
  • 打赏
  • 举报
回复
引用楼主 ayang3178 的回复:
SQLSERVER2000的数据库,用户数据库的特点是插入数据的事务操作很频繁,都是几百万条数据的大表(且经常定时大量删除过时数据),数据库运行一段时间,用DBCC CHECKTABLE有时会发现一致性错误(时间不确定)。错误消息 8952,消息 8956之类,知道是某表索引出问题了,虽然是逻辑错误可以修复。但是这种出现索引损坏的表,用DELETE删除大量过时数据就会出问题,删除数据事务无法进行下去,必须逻辑修复了才行。

我的问题是搞不清楚,索引为何会出现这种损坏,这种损坏的情况可以避免吗?谢谢
正常出现
Yang_ 2010-02-22
  • 打赏
  • 举报
回复
用作业定时重建索引,最好定在删除操作后执行。
dlcyj 2010-02-22
  • 打赏
  • 举报
回复
经常性插入,删除记录,考虑一下数据库碎片问题
starseeker7 2010-02-21
  • 打赏
  • 举报
回复
正常出现的- -
无法避免的,,
造成情况,
等牛人回答 - -

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧