我的一个数据库里有一张有趣的桌子,这让我很困惑。
所讨论的表有几个LOB类型的列(两个nvarchar(max)和一个文本),看起来存在一些奇怪的空间问题。
从这个查询中:
SELECT type_desc,
SUM(total_pages) *8 [Size in kb]
FROM sys.partitions p JOIN sys.allocation_units a
ON p.partition_id = a.container_id
WHERE p.object_id = OBJECT_ID('asyncoperationbase')
GROUP BY type_desc; 我得到:
type_desc Size in kb
IN_ROW_DATA 27936
LOB_DATA 1198144
ROW_OVERFLOW_DATA 0(表中只有不到8000行,每一行的数据长度为~10k --不包括LOB数据)
这里有些有趣的地方:
SELECT ( SUM(DATALENGTH(aob.WorkflowState)) +
SUM(DATALENGTH(aob.[Message]))+
SUM(DATALENGTH(aob.[Data])) ) / 1024来自AsyncOperationBase aob
返回:
76617当我阅读它时--它看起来像是存储在一个空间上的大约75 of的LOB数据--我希望会有一些开销,但不会放弃那么多。
谢谢,
安德鲁
发布于 2010-01-20 20:50:15
好的,我想我会更新这个,以防它对别人有帮助。最后,在这个问题上使用了MS支持,显然有一个后台工作线程负责释放空间。在这种情况下,它已经停止工作。简单的修复方法是重新启动SQL服务器。
干杯
安德鲁
https://serverfault.com/questions/84471
复制相似问题