对于MSSQLServer mdf文件,有些东西我不理解。我被要求用以前的版本替换一个文件(数据库在这两个版本之间已经被修改了),但是当我在我的备份(用Bacula创建)上寻找它时,文件大小是一样的!
我的问题是:文件是否具有预先定义的大小,由于缺少空间而会动态增长(嗯,我明白了吗?),所以我的备份具有相同的大小,而不是相同的内容?
对不起,我不太熟悉SQL Server.
谢谢你的帮忙,
热雷米
发布于 2015-02-19 14:21:01
Sql数据库有点像大型excel电子表格。
有列和线。
当您删除数据时,它不会收缩数据库,因为它不会删除行和数据,只有值(如果您处于完全日志模式,它会存储日志文件更改)。
您必须备份数据库以恢复日志和存储文件上的空间。(原木和mdf)。
发布于 2015-02-19 19:04:14
(旁白:我希望你也在运行服务器备份。就像在Server内部。向右移动.)
这在一定程度上取决于您在表中使用的实际数据类型,以及您通常运行的查询类型。例如,一个整数列使用4个字节来存储数据,不管您存储的是哪个整数。datetime使用4个字节来存储数据,不管您存储的日期是哪一天。Unique标识符(GUID)是16个字节,不管是什么。更新后,存储空间大小保持不变。
变量数据类型,如nvarchar,是可变的(duh)。例如,Nvarchar是按字节大小输入的字符数的两倍.
此外,您的数据库大小在创建时是预先分配的,要么使用您输入的值,要么使用服务器的默认值(在模型数据库中设置)。因此,它可能还没有填补预先分配的空间,特别是如果您做的更新比插入多,或者它不是很忙。(它是否自动增长取决于您的设置。)
下面是是各种数据类型的引用。
https://serverfault.com/questions/669879
复制相似问题