有一些我不明白的MSSQLServer mdf文件。 我已经被要求用它以前的版本replace一个文件(数据库已经在两个版本之间进行了修改),但是当我在我的备份(用Bacula制作)上查找时,文件大小是一样的!
我的问题是:有一个预先定义的大小,dynamic增长,因为它缺乏空间(嗯,我清楚?),所以我的备份有相同的大小,但不是相同的内容?
对不起,但我不熟悉SQL Server ….
谢谢你的帮助,
热雷米
Sql数据库有点像Excel电子表格。
有列和行。
当你删除数据时,它不会收缩数据库,因为它不会删除行和数据,只有值(如果你处于完整的日志模式,它会将日志文件存储在变化的日志文件中)。
您必须备份数据库以回收日志和存储文件上的空间。 (日志和mdf)。
(另外:我希望你也在运行SQL Server备份 ,就像在SQL Server里面一样,
这部分取决于您在表中使用的实际数据types以及您更常用的查询types。 例如,整数列使用4个字节来存储数据,而不pipe您在那里存储哪个整数。 date时间使用4个字节来存储数据,无论您在那里存储哪个date。 唯一标识符(GUID)是16个字节,无论如何。 更新,存储大小保持不变。
variables数据types,如nvarchar,是variables(duh)。 例如,Nvarchar是以字节为单位input的字符数的两倍。
此外,数据库大小在创build时预先分配,可以是input的值,也可以是服务器的默认值(在模型数据库中设置)。 所以它可能还没有填满预先分配的空间,尤其是如果你做了更多的更新而不是插入或者不是非常繁忙。 (并且它是否自动填充取决于您的设置。)
以下是各种数据types的参考。