对于仅包含 1 个表(该表包含 10 行)的数据库,为什么文件大小会.MDF
增长到 1GB+?.LDF
该数据库源自一个 2MB 的.bak
文件,目前尚未添加其他数据。
答案1
MDF 可能创建为 1 GB - 或者在某个时间点包含远多于 10 行的内容。当您从 MDF 中删除数据时,其大小通常不会缩小。为了缩小其大小,您几乎必须创建一个新数据库,确保将其初始大小设置为较低,然后将数据从该表复制到新数据库。
如果您运行大量需要记录的 SQL 语句(例如插入、更新、删除等),LDF(事务日志文件)将会增大。定期使用日志备份,您可以保持事务日志文件较小,并将数据库切换到简单的恢复模型(而不是完整模型)也将有很大帮助。
答案2
单行单列可以有2Gb。
但即使表确实很小,当前大小也不能反映过去的历史。删除 1 亿行后,表可能只有 10 行。日志将保留所有活动,直到备份。数据库不会在增长后缩小,也不应该在特殊情况下被迫裸露。
答案3
您是否在数据库中存储了 BLOB?Blob(二进制大对象)通常比其他东西消耗更多的内存。
答案4
没有回答您的问题,但如果您可以重复恢复,您可以使用 Profiler 来“观察”哪些进程触碰了相关的数据库。