我想了解导致SQL Server 12数据库大小的原因。 mdf有21.5 GB。使用SQL Server Management Studio中的“按顶层表的磁盘使用情况”报告,我可以看到一个表的“数据”使用了15.4 GB。该表有1,691行4列(int,varchar(512),varchar(512),image)。我假设图像列负责大部分消耗。但
Select (sum(datalength(<col1>)) + ... )/1024.0/1024.0 as MB From <Table>
只给出328.9 MB。
这种巨大差异背后的原因可能是什么?
附加信息:对于某些行,图像列会定期更新。
也许你每个表使用了很多索引,这些都会加起来。也许你的自动增长设置是错误的。
原因是同一SQL Server实例上另一个不相关的数据库(!)上的长时间运行事务。读提交的快照隔离级别填充了版本存储。断开其他应用程序会将内存使用量减少到合理的数量。