SQL Server instant file initialization

instant

КолиSQL Serverрезервує нове місце на диску, він ініціалізує його нулями. Цю поведінку можна вимкнути і скоротити час виконання деяких операцій і знизити навантаження на дискову підсистему.

Можливість резервування місця на диску без ініціалізації називаєтьсяInstant File Initialization(миттєва ініціалізація файлів). Фіча ця не відома, хоча її використання стало можливим починаючи зSQL Server 2005.

Які переваги можна отримати відInstant File Initialization:

1. Прискорити створення нової бази даних 2. Скоротити затримки та зменшити час, необхідний для збільшення файлів даних 3. Скоротити час стартуSQL Server, оскільки ініціалізаціяtempdbбуде швидшою 4. Скоротити час при відновленні з резервної копії, оскільки перед відновленнямSQL Serverрезервує місце під файли, а потім переносить у них інформацію з бекапа.

Важливо, щоInstant File Initializationпрацює тільки для файлів даних (MDF та NDF). Файли лога (LDF) завжди ініціалізуються нулями.

Як використовуватиInstant File Initialization?

Все дуже просто вмикається. ВідкриваємоSQL Server Configuration Managerі дізнаємося від якого імені запускається екземпляр нашогоSQL Server.

Далі запускаємо уLocal Security Policy(Локальна політика безпеки) (cmd > secpol.msc) шукаємоUser Rights Assignment(Назва прав користувача) –Perform volume maintenance tasks(Виконання завдань з обслуговування томів)

server

Додаємо потрібну нам особу в налаштування, як показано на малюнку.

server

Права, необхідні для роботиInstant File Initialization, екземплярSQL Serverперевіряє лише один раз – під час старту. Саме томупотрібно перезапуститиSQL Server, щоб застосували наші налаштування.

Тепер проводитимемо експерименти…

Для початку давайте перевіримо… чи включенийInstant File Initialization?

Якщо його вимкнено, то при виконанні запиту: