gpt4 book ai didi

sql-server-2008 - 尝试获取数据库 2 中的逻辑页失败。它属于分配单元 X 不属于 Y

转载 作者:行者123 更新时间:2023-12-04 07:03:29 28 4
gpt4 key购买 nike

执行某些 SP 时开始出现以下错误。与此错误相关的代码非常简单,将#temp 表连接到真实表

错误全文:

Msg 605, Level 21, State 3, Procedure spSSRSRPTIncorrectRevenue, Line 123
Attempt to fetch logical page (1:558552) in database 2 failed. It belongs to allocation unit 2089673263876079616 not to 4179358581172469760.

这是我发现的: https://support.microsoft.com/en-us/kb/2015739

这表明数据库存在某种问题。我在用户数据库和临时数据库上运行 DBCC CHECKDB - 所有通过。

我正在做的第二件事 - 试图找到那些分配单元属于哪个表

SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,
au.type_desc AS allocation_type, au.data_pages, partition_number
FROM sys.allocation_units AS au
JOIN sys.partitions AS p ON au.container_id = p.partition_id
JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id
WHERE au.allocation_unit_id in(2089673263876079616, 4179358581172469760)
ORDER BY au.allocation_unit_id

这会在 tempdb 中返回 2 个对象,而不是在用户数据库中。所以,这让我觉得这是 tempdb 中的某种数据损坏?我是开发人员,不是 DBA。关于我接下来应该检查什么有什么建议吗?

此外,当我运行上面的查询时,我如何才能说出我理解的真实对象名称?像 #myTempTable______... 而不是 #07C650CE

最佳答案

我能够通过清除 SQL 缓存来解决这个问题:

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO

显然重新启动 SQL 服务会产生同样的效果。

(来自Made By SQL,转载于此帮助他人!)

关于sql-server-2008 - 尝试获取数据库 2 中的逻辑页失败。它属于分配单元 X 不属于 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36264712/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com