共享驱动器上的即时文件初始化

Chr*_*ods 8 performance sql-server restore

我之前问过类似的问题,但之前我问过关于将备份移动到共享位置的问题。这次我很好奇:如果我想在共享驱动器上恢复数据库,我需要在该服务器上启用 IFI 还是只在运行 SQL Server 的服务器上启用?

我问的原因是我正在恢复一个非常大的数据库,并且在过去几个小时内一直停留在 100% 恢复状态。等待类型sp_whoisactive是:

(28472716ms) `PREEMPTIVE_OS_WRITEFILEGATHER.
Run Code Online (Sandbox Code Playgroud)

我见过的唯一一次是当 IFI 未打开时,但我确实在 SQL Server 上启用了它,但在共享驱动器服务器上未启用它。

Pau*_*ite 2

社区 Wiki 答案是根据Bob KlimesSean GallardyAaron Bertrand对该问题的评论生成的。


您需要在保存磁盘的服务器上启用即时文件初始化(IFI)。重新启动SQL Server使其生效。

您可以通过在打开跟踪标志 3004 和 3605 的共享上创建数据库来测试 IFI 是否正在共享上工作。输出写入 SQL Server 错误日志。

如果 IFI 正在工作,则不会有任何用于将 mdf 文件归零的条目。

IFI 似乎确实可以使用网络共享,但对我来说,创建测试数据库在共享上花费了 45 秒,在本地花费了不到 1 秒。即使启用了 IFI,您可能仍然会遇到性能问题。