zoukankan      html  css  js  c++  java
  • SQL Server数据库索引修复

    1.索引错误产生的现象

    goods_in_out的 DBCC 结果。
    消息 8935,级别 16,状态 1,第 1 行
    表错误: 对象 ID 27147142,索引 ID 1,分区 ID 72057594040025088,分配单元 ID 72057594044350464 (类型为 In-row data)。页 (1:191461) 上的上一页链接 (1:191462) 与父代 (1:53785) 槽 245 所预期的此页的上一页 (1:191458) 不匹配。
    消息 8977,级别 16,状态 1,第 1 行
    表错误: 对象 ID 27147142,索引 ID 1,分区 ID 72057594040025088,分配单元 ID 72057594044350464 (类型为 In-row data)。没有遇到页 (1:191462) 的父节点。
    对象 'goods_in_out' 的 5193 页中有 172446 行。
    CHECKTABLE 在表 'goods_in_out' (对象 ID 27147142)中发现 0 个分配错误和 2 个一致性错误。
    对于由 DBCC CHECKTABLE (zyhadm.dbo.goods_in_out)发现的错误,repair_rebuild 是最低的修复级别。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    

    表 table 中实际存在某条数据,但是当查询使用了错误的索引时,数据无法查到。

    2.解决方法

    表 table 的索引错误无法避免,而且产生时间不确定。所以需要定期维护索引。

    1)第一种,可以通过重新生成索引进行修复,【右键索引】→【编写索引脚本为】→【DROP 和 CREATE 到】→【新建编辑器窗口】,执行SQL ;

    2)第二种,通过 DBCC CHECKTABLE('table')查看表的问题,如果出现一致性错误时,通过命令修复表

    首先将数据库设置成单用户模式

    执行 DBCC CHECKTABLE ('table',repair_rebuild)

    然后将数据库设置为多用户模式。

  • 相关阅读:
    说一下spring bean的生命周期
    oracle是怎么分页的
    Zookeeper和eureka之间的区别?
    说一下zookeeper和eureka之间的区别?
    假如一张表有一亿条数据,你怎样提高查询效率
    equals和==的区别
    谈谈你对oracle序列的理解
    你们项目中权限是怎样做的?
    讲解一下spring cloud常见组件的作用?
    说一下你们项目中实体类都是怎样重写hashcode()和equals()的
  • 原文地址:https://www.cnblogs.com/wangning-aaron/p/3875710.html
Copyright © 2011-2022 走看看