• 按索引字段查询时报错


    前几天解决客户问题时,碰到一个现象。

       当客户查询一张表时,报错, 如下:

                

     Location:  statutil.cpp:3225
    Expression:  m_fInitialized && m_statBlob.CbSize() && iKey >= -1 && iKey < m_statBlob.GetHeader()->GetKeyCount()
    SPID:  61
    Process ID:  1876
    消息 3624,级别 20,状态 1,第 1 行
    系统断定检查已失败。有关详细信息,请查看 SQL Server 错误日志。通常,断定失败是由软件错误或数据损坏导致的。若要检查数据库是否已损坏,请考虑运行 DBCC CHECKDB。如果您同意在安装过程中将转储发送到 Microsoft,则将向 Microsoft 发送微型转储。更新可能在 Microsoft 的最新 Service Pack 或技术支持部门的 QFE 中提供。 
    消息 0,级别 20,状态 0,第 0 行
    当前命令发生了严重错误。应放弃任何可能产生的结果。 
     
    看到这错误 ,给人的第一印像是 数据库里是不是有坏页了,所以随即对整个库做  DBCC CHECKDB 的检查(当然对那特定的表做检查也是快速定位错误的一种途径),但检查的 0 个分配错误和 0 个一致性错误 。这倒让我有些差异,随即查看 error log ,发现用户在几分钟前重启过sql server 服务,并且当时数据库里的这张表正在重新组织索引,那么这时就把这问题基本上缩小范围了。
    此时,我这样做了一下验证,通过其它字段查询同样一条内客是可以的,但就是用特定的那个字段去查询会报错,又通过 sp_helpindex 查看这张表上的索引情况,发现出问题的字段上果然有索引,所以让客户把涉汲这个字段的索引全部删除重建,再去查询就正常了。
     
    事后问客户,为啥重启sql 服务,他们说在重新组织索引时,发现等了半天也没有动静,以为卡死了,所以就重启了。
     
    关于重建索引,重新组织索引,以及联机索引的知识,请参考后续的博客,谢谢。
  • 相关阅读:
    leetcode刷题笔记三十九 组合总和
    leetcode刷题笔记三十八 外观数列
    leetcode刷题笔记三十七 解数独
    leetcode刷题笔记三十六 有效的数独
    HTML5每日一练之input新增加的六种时间类型应用
    HTML5每日一练之input新增加的5种其他类型1种标签应用
    html5+css3中的background: -moz-linear-gradient 用法
    HTML5新标签解释及用法
    让IE浏览器支持CSS3圆角的方法
    纯CSS3实现的图片滑块程序,效果非常酷
  • 原文地址:https://www.cnblogs.com/fooa1098/p/8183146.html
Copyright © 2020-2023  润新知