Se eu quiser criar um banco de dados de 5 GB com
CREATE DATABASE [test]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
leva 1 minuto no meu SSD.
Mas quando adiciono o usuário do SQL Server ao Perform volume maintenance tasks
leva apenas 1-2 segundos .
Por que é que? Alguém pode me explicar quais são as razões para isso?
sql-server
performance
Nikolay Kostov
fonte
fonte
Respostas:
Isso é devido à inicialização instantânea de arquivos . Em resumo, o SQL Server pode tirar proveito desse privilégio para arquivos de dados do banco de dados (não arquivos de log de transações). O que isso significa é que o SQL Server não precisa zerar o (s) arquivo (s) de dados ao inicializar.
Sem o privilégio "Executar tarefas de manutenção de volume" concedido à conta do Serviço SQL, na criação do banco de dados, o SQL Server precisa zerar "test.mdf" e "test_log.ldf".
Com o conjunto de permissões de privilégio "Executar tarefas de manutenção de volume" , o SQL Server precisa zerar "test_log.ldf". Uma sobrecarga significativamente menor e, portanto, duração minimizada para os
CREATE DATABASE
testes.Referências
Como e por que ativar a inicialização instantânea de arquivos Inicialização
instantânea - O que, por que e como?
fonte
Isso não afetará os arquivos .ldf (arquivos de log), pelo menos não de acordo com o artigo da MS
Por que fazê-lo? Rapidez
Por que NÃO fazer isso? Possível risco de segurança. Alguém poderia invadir sua caixa e, possivelmente, ler os espaços de memória diferentes de zero e recuperar esses dados. Risco pequeno, mas ainda um risco. É por isso que não está ativado por padrão.
Explicação detalhada: Como e Por que Habilitar a Inicialização Instantânea de Arquivos
fonte