我刚刚继承了一台 SQL Server,其中数据库文件增长设置为 1MB。因此,到目前为止,有很多数据库(>25 个)都以小幅度增长(目前总计 300 GB)。
因此我认为硬盘一定非常碎片化,并下令停机很长时间来运行磁盘优化(关闭 SQL Server)。但它在 1 分钟内完成,并说磁盘没有碎片化。
我注意到它已被设置为“Scheduled Optimization”=“On”。
Windows 2016 是否能够在 SQL Server 运行时运行磁盘优化?
我到处寻找,所有地方都说你应该手动将数据库大块化以避免碎片化。如果你能接受 Windows 每周运行一次磁盘优化,这似乎就不那么重要了。如果数据库大小增长了 1MB,Brent Ozar 的 SP_Blitz 工具就会发出警告。
答案1
自从 Windows 具有该功能以来,它实际上可以处理锁定的文件。甚至在他们购买的版本(我认为)允许这样做之前。内核中有一个特殊的 API,允许移动文件,而无需常规文件系统 API。
所以,答案是肯定的。