Inicialização instantânea de arquivos na unidade compartilhada

8

Eu perguntei algo semelhante a isso antes, mas anteriormente eu havia perguntado sobre 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 bastante grande e ele ficou 100% restaurado nas últimas duas horas. O tipo de espera sp_whoisactiveé:

(28472716ms) `PREEMPTIVE_OS_WRITEFILEGATHER.

A única vez que eu vi que é quando IFI não é, mas eu não tê-lo ativado no SQL Server, mas não está habilitado no servidor de unidade compartilhada.

Chris Woods
fonte

Respostas:

1

A resposta do Wiki da comunidade gerada a partir dos comentários sobre a pergunta, de Bob Klimes , Sean Gallardy e Aaron Bertrand .


Você precisará ativar a IFI ( Instant File Initialization ) no servidor que contém o disco. Reinicie o SQL Server para que ele entre em vigor.

Você pode testar se o IFI está trabalhando no compartilhamento criando um banco de dados no compartilhamento com os sinalizadores de rastreamento 3004 e 3605 ativados. A saída é gravada no log de erros do SQL Server.

Se o IFI estiver funcionando, não haverá entradas para zerar o arquivo mdf.

A 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.

Paul White
fonte