内部查询处理器错误:查询处理器在执行过程中遇到意外错误 解决方案
错误信息
内部查询处理器错误:查询处理器在执行过程中遇到意外错误
分析
检查SQL Server的错误日志
文件路径类似(数据库软件安装在系统盘):C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log或者执行sp_readerrorlog获取错误日志
发现类似下面错误信息
2021-03-02 15:50:15.74 spid90 The Database ID 10, Page (1:35852), slot 0 for LOB data type node does not exist. This is usually caused by transactions that can read uncommitted data on a data page. Run DBCC CHECKTABLE.
说明数据库ID为10,数据页(1:35856)插槽0中的LOB数据类型节点不存在,导致了一致性问题
获取实际的对象
dbcc traceon(3604)
dbcc page(10,1,36862,3)
Page @0x000001C2B9228000
m_pageId = (1:35862) m_headerVersion = 1 m_type = 3
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x2208
m_objId (AllocUnitId.idObj) = 26929 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057595802746880
Metadata: PartitionId = 72057595956297728 Metadata: IndexId = 1
Metadata: ObjectId = 1965327603 m_prevPage = (0:0) m_nextPage = (0:0)
通过ObjectId得到表名为T_BAS_SCHEDULEINFOLOG,执行
dbcc checktable('T_BAS_SCHEDULEINFOLOG',REPAIR_REBUILD)
dbcc checktable('T_BAS_SCHEDULEINFOLOG',REPAIR_ALLOW_DATA_LOSS) 没有解决问题。
继续检查错误日志,发现有新的日志信息
2021-03-02 16:29:52.31 spid84 错误: 9100,严重性: 23,状态: 2。
2021-03-02 16:29:52.31 spid84 Possible index corruption detected. Run DBCC CHECKDB.
说明可能是索引损坏,说明数据保存时由于意外(如服务器由于断电或者突然冷关机或者直接杀掉SQL Server服务进程)导致了逻辑数据不一致。
解决方法
将有问题表的索引删除后,重新创建后问题得到解决。
提示
定期检查SQL Server的错误日志,关注出错的信息,及时处理
内部查询处理器错误:查询处理器在执行过程中遇到意外错误 解决方案
本文2024-09-23 01:17:34发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-145011.html