我在我的一个数据库中有一个有趣的表格,令我感到困惑。
有问题的表中有几个LOBtypes的列(两个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
正如我正在读它 – 看起来~75MB的LOB数据正在使用一个空间存储 – 我希望有一些开销,但不会退出那么多。
谢谢,
安德鲁
好吧,我想我会更新这个以防别人帮忙。 在这个问题上结束了与MS支持工作,显然有一个后台工作线程负责释放空间。 在这种情况下,它已经停止工作。 简单的修复是重新启动SQL服务器。
干杯
安德鲁