Eu perguntei algo semelhante a isso antes, mas antes eu havia perguntado sobre como mover backups para um local compartilhado. Desta vez estou curioso: se eu quiser restaurar um banco de dados em uma unidade compartilhada, preciso habilitar o IFI nesse servidor ou apenas no servidor que está executando o SQL Server?
A razão pela qual pergunto é que estou restaurando um banco de dados muito grande e ele ficou 100% restaurado nas últimas horas. O tipo de espera sp_whoisactive
é:
(28472716ms) `PREEMPTIVE_OS_WRITEFILEGATHER.
A única vez que vi isso é quando o IFI não está ativado, mas eu o habilitei no SQL Server, mas não está ativado no servidor da unidade compartilhada.
Resposta do Wiki da comunidade gerada a partir de comentários sobre a pergunta, de Bob Klimes , Sean Gallardy e Aaron Bertrand .
Você precisará ativar a inicialização instantânea de arquivo (IFI) no servidor que contém o disco. Reinicie o SQL Server para que ele entre em vigor.
Você pode testar se o IFI está funcionando no compartilhamento criando um banco de dados no compartilhamento com sinalizadores de rastreamento 3004 e 3605 ativados. A saída é gravada no log de erros do SQL Server.
O IFI parece funcionar com compartilhamentos de rede, mas para mim a criação de um banco de dados de teste levou 45 segundos no compartilhamento e menos de 1 segundo localmente. Mesmo com o IFI ativado, você ainda pode ter problemas de desempenho.