• SQL SERVER 2008:内部查询处理器错误: 查询处理器在执行过程中遇到意外错误


       今天一个同事突然告诉我,以前跑得很正常的一个SQL语句,执行时突然报如下错误:

            消息1222,级别16,状态18,第1 行

            已超过了锁请求超时时段。

            消息8630,级别16,状态1,第1 行

            内部查询处理器错误: 查询处理器在执行过程中遇到意外错误。

    我执行了一下这个SQL语句,也是报如上错误,感觉有点奇怪,还是第一次遇到这种错误。我初步怀疑是SQL中某个表出现一致性错误或分配错误等原因造成。于是先用DBCC CHECKTABLE 依次检查每个表。DBCC CHECKTABLE用来检查组成表或索引视图的所有页和结构的完整性。结果还真的发现其中一个表有2个一致性错误。如下所示:

    pbFabricWIP的 DBCC 结果。

    消息 8951,级别 16,状态 1,第 1 行

    表错误: 表 'pbFabricWIP' (ID 1254295528)。数据行在索引 'Current_Index' (ID 24)中没有匹配的索引行。与以下数据行匹配的索引行的键可能丢失或无效:

    消息 8955,级别 16,状态 1,第 1 行

    数据行(1:31937:26)由(HEAP RID = (1:31937:26))标识,索引值为 'Current_Department = 'FI' and Current_Operation = '待装单' and HEAP RID = (1:31937:26)'。

    消息 8952,级别 16,状态 1,第 1 行

    表错误: 表 'pbFabricWIP' (ID 1254295528)。索引 'Current_Index' (ID 24)中的索引行与任何数据行都不匹配。可能是以下行的多余或无效的键:

    消息 8956,级别 16,状态 1,第 1 行

    索引行(1:10613:16)的值为(Current_Department = 'FI' and Current_Operation = '待组板' and HEAP RID = (1:31937:26)),指向由(HEAP RID = (1:31937:26))标识的数据行。

    对象 'pbFabricWIP' 的 7391 页中有 324059 行。

    CHECKTABLE 在表 'pbFabricWIP' (对象 ID 1254295528)中发现 0 个分配错误和 2 个一致性错误。

    对于由 DBCC CHECKTABLE (SystemDB.dbo.pbFabricWIP)发现的错误,repair_rebuild 是最低的修复级别。

    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

     

    于是接下来需要修复这个表的索引的一致性错误。使用DBCC DBREINDEX执行后,问题解决。

    DBCC DBREINDEX('pbFabricWIP')

    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

  • 相关阅读:
    Andrew Ng
    Matlab 常用语法速记 1
    jQuery 中的常用函数
    JS 删除数组中指定的某个元素的方法
    layer 插件 在子页面关闭自身的方法
    U方法
    读取配置和动态配置(C方法)
    TP框架控制器和对应方法创建
    ThinkPHP基础(1)
    利用ThinkPHP做项目步骤
  • 原文地址:https://www.cnblogs.com/kerrycode/p/3507965.html
Copyright © 2020-2023  润新知