错误的尺寸,最大化和数字化?

时间:2017-10-14 14:15:32

标签: sql-server

我知道基本上在创建数据库时,模型系统DB是根据下面的图片复制的:

enter image description here enter image description here

  1. 为什么PRIMARY文件的初始大小为3MB,LOG的初始大小为1MB如果文档清楚地说明2016年以上的版本应该是8MB而对于任何更低的版本都应该是1MB(我在这个类别上我是' 39; m使用2014)

  2. 据我所知,日志文件最大可能增加到2TB,但为什么Model数据库无限制,STACK数据库限制为2TB?

  3. 假设实际的默认大小确实是3MB和1MB,为什么在磁盘上,我看到2240 KB和560 KB?

1 个答案:

答案 0 :(得分:0)

  1. 虽然documentation for 2016 and later versions确实说初始大小为8MB,但我无法在20052008中找到对1MB初始大小的引用,{ {3}},2008 R22012版本。我手头没有2014版本,但在2008 R2中,模型的初始大小也是3MB,所以它似乎是默认的初始值(也许你把初始大小与默认的自动增长值1MB混淆)。 / p>

  2. 在这一点上,文档似乎没有100%准确,因为在2016年之前的所有版本中,当实际值为1MB时,它们将主数据文件的默认自动增长列为10%。此外,对于模型日志文件,最大大小为Unrestricted / Unlimited(如果执行select * from model..sysfiles,则日志行中size列的值为-1),但是当您创建新数据库时,最大大小日志文件确实是2TB,我认为2014的这一段解释了这一点:

      

    如果修改model数据库,则之后创建的所有数据库都将继承这些更改。例如,您可以设置权限或数据库选项,或添加表,函数或存储过程等对象。 模型数据库的文件属性是一个例外,除数据文件的初始大小外,将被忽略。

    所以我认为文档只是合并了两个事实,这意味着新数据库的日志文件的最大值是2TB。

  3. 因为SSMS的那一列没有显示十进制值,所以实际值必须四舍五入为整数。可能他们使用ROUND()而不是使用CEILING()只是为了安全起见(至少对于低值,如果不是490KB的大小则报告为0MB)。