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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

   今天一个同事突然告诉我,以前跑得很正常的一个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 输出了错误信息,请与系统管理员联系。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5天前
|
SQL 安全 数据库
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
100 77
|
25天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
75 9
|
1月前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
179 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
46 8
|
2月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
82 4
|
2月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
2月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
206 10
|
2月前
|
SQL 关系型数据库 MySQL
|
3月前
|
SQL 数据库 开发者
功能发布-自定义SQL查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
|
3月前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录