0

我有一个 SQL Server 数据库的奇怪情况,表中的实际数据大约是320 MiB。这是通过对DATALENGTH所有列求和来确定的。这将忽略碎片、索引空间和其他 SQL Server 内部开销。但问题是该表的大小大约为40 GiB,并且它以惊人的速度增长,与插入的字节或行中的数据量非常不成比例。

我使用该sys.dm_db_index_physical_stats功能查看物理数据,大约 40 GiB 的数据被捆绑在LOB_DATA.

构成表格内容的 320 MiB 中的大部分都是ntext. 现在,我的问题是 SQL Server 为何LOB_DATA在只有大约 310 MiBntext数据的情况下分配了 40 GiB。

如果我们将列转换为 ,问题会消失nvarchar(max)吗?ntext是否有任何存储引擎细节LOB_DATA导致LOB_DATA页面不被回收?为什么它在改变的数量方面以如此不成比例的速度抱怨?

4

0 回答 0