我是一名新的 DBA,并安装了聚光灯来监控我的 DB。一位高级 DBA 建议我增加我的数据库的初始大小,但他无法正确解释我增加的原因/好处。有人可以帮忙吗?
3 回答
主要原因是文件碎片。较大的初始大小将保护您免受此问题的影响。
此外,当您的数据库增长时,它会产生成本 - 数据库性能会受到影响。
很可能是因为当超过初始大小时,文件系统上的文件需要增加。这会导致磁盘上出现碎片文件,因为大多数情况下它无法在已分配空间之后立即获得更多空间。
有时文件会以百分比增长,当您以非常小的初始大小开始时,这会导致更多的碎片。
主要原因是当文件必须增长时,所有数据库操作将停止,直到文件增长到数据库的自动增长设置中指定的数量,这是一项昂贵的操作,并且可能需要一些时间,具体取决于文件的大小数据库,自动增长设置(想象一下,如果数据库的大小已经是 2TB,则将数据库增长 10% 所需的时间,所有查询都必须等待它完成,因此为什么固定数量通常优于百分比),存储速度以及是否为 SQL 实例启用即时文件初始化。
最好从一开始就适当调整数据库的大小以避免这些问题。
碎片并不像人们想象的那么严重,通常在生产 SQL 服务器上,数据库文件在它们自己的卷上,没有其他任何东西写入它们,所以连续空间不是问题,也是问题当您考虑到驱动器可能是 iSCSI LUN 时,碎片会变得更加复杂,您不知道物理文件布局(例如,NetApps 可以使用 Write Anywhere File Layout,WAFL 到处写入)。
通常,SQL Server 中的文件/索引碎片在性能方面是不成比例的,根据我的经验,它很少甚至接近成为故障排除性能的主要因素。