Мгновенная инициализация файла на общем диске

8

Я спрашивал что-то похожее на это раньше, но ранее я спрашивал о перемещении резервных копий в общую папку. На этот раз мне любопытно: если я хочу восстановить базу данных на общем диске, нужно ли включать IFI на этом сервере или только на сервере, на котором работает SQL Server?

Причина, по которой я спрашиваю, заключается в том, что я восстанавливаю довольно большую базу данных, и она застряла на 100% восстановленной за последние пару часов. Тип ожидания в sp_whoisactive:

(28472716ms) `PREEMPTIVE_OS_WRITEFILEGATHER.

Единственный раз, когда я видел это, это когда IFI не включен , но у меня он включен на SQL Server, но не включен на сервере с общими дисками.

Крис Вудс
источник

Ответы:

1

Вики-ответ сообщества, полученный из комментариев по этому вопросу, от Боба Климса , Шона Галларди и Аарона Бертранда .


Вам нужно будет включить мгновенную инициализацию файлов (IFI) на сервере, на котором находится диск. Перезапустите SQL Server, чтобы он вступил в силу.

Вы можете проверить, работает ли IFI над общим ресурсом, создав базу данных на общем ресурсе с включенными флагами трассировки 3004 и 3605 . Вывод записывается в журнал ошибок SQL Server.

Если IFI работает, не будет записей для обнуления файла mdf.

IFI действительно работает с сетевыми ресурсами, но для меня создание тестовой базы данных заняло 45 секунд для общего ресурса и менее 1 секунды локально. Даже при включенном IFI у вас все еще могут быть проблемы с производительностью.

Пол Уайт
источник