SQL Server:为什么对于仅包含 1 个表(该表包含 10 行)的数据库,.MDF 和 .LDF 文件会增长到 1GB+

SQL Server:为什么对于仅包含 1 个表(该表包含 10 行)的数据库,.MDF 和 .LDF 文件会增长到 1GB+

对于仅包含 1 个表(该表包含 10 行)的数据库,为什么文件大小会.MDF增长到 1GB+?.LDF

该数据库源自一个 2MB 的.bak文件,目前尚未添加其他数据。

答案1

MDF 可能创建为 1 GB - 或者在某个时间点包含远多于 10 行的内容。当您从 MDF 中删除数据时,其大小通常不会缩小。为了缩小其大小,您几乎必须创建一个新数据库,确保将其初始大小设置为较低,然后将数据从该表复制到新数据库。

如果您运行大量需要记录的 SQL 语句(例如插入、更新、删除等),LDF(事务日志文件)将会增大。定期使用日志备份,您可以保持事务日志文件较小,并将数据库切换到简单的恢复模型(而不是完整模型)也将有很大帮助。

答案2

单行单列可以有2Gb。

但即使表确实很小,当前大小也不能反映过去的历史。删除 1 亿行后,表可能只有 10 行。日志将保留所有活动,直到备份。数据库不会在增长后缩小,也不应该在特殊情况下被迫裸露。

答案3

您是否在数据库中存储了 BLOB?Blob(二进制大对象)通常比其他东西消耗更多的内存。

答案4

没有回答您的问题,但如果您可以重复恢复,您可以使用 Profiler 来“观察”哪些进程触碰了相关的数据库。

相关内容