Instant File Initialization(IFI)を有効にする

Master Mole
質問: SQL Server でのIFI有効化
Instant File Initialization(IFI)を有効にすると、SQL Serverのパフォーマンスが向上すると聞きました。 どうやって設定するのでしょうか?

Instant File Initialization(IFI)

データファイル(mdf/ndf)の作成・拡張時、SQL Serverは通常セキュリティ上の理由でディスクにゼロを書き込んで初期化します。 これが大きなファイルだと数分〜数十分かかることがあります。 IFIを有効にするとこのゼロ書き込みステップをスキップして、確保した領域を即座に使い始めることができます。 データベース作成、リストア、データファイル拡張、自動拡張などが劇的に速くなります。

デフォルトで有効なのか?

SQL Server 2016以降、インストール時にDatabase Engineサービスのサービスセキュリティ識別子(SID)に対してこの権限を付与できるようになっています。 コマンドラインインストールでは /SQLSVCINSTANTFILEINIT 引数を追加するか、 インストールウィザードで「SQL Serverデータベースエンジンサービスにボリュームの保守タスクを実行する特権を付与する」のチェックボックスをオンにします。

IFIが有効か確認する

IFIが有効か確認するには次のSQLを実行します。

-- IFI が有効か確認
SELECT 
    CASE WHEN service_account = 'NT Service\MSSQLSERVER' THEN 'サービスアカウント要確認' END,
    instant_file_initialization_enabled
FROM sys.dm_server_services
WHERE servicename LIKE 'SQL Server (%';


"サービスアカウント要確認"の値が "Y"であれば有効に、"N"であれば無効の状態です。

(列名なし)instant_file_initialization_enabled
サービスアカウント要確認N


Instant File Initialization(IFI)を有効にする:画像1

SQL Server サービスアカウントの確認

はじめに次のSQLを実行して、サービスアカウントを確認します。

SELECT 
    servicename,
    service_account,
    instant_file_initialization_enabled
FROM sys.dm_server_services
WHERE servicename LIKE 'SQL Server (%';


servicenameservice_accountinstant_file_initialization_enabled
SQL Server (MSSQLSERVER)(サービスアカウント名)N

(サービスアカウント名)部分にSQL Serverのサービスアカウントが表示されます。


Instant File Initialization(IFI)を有効にする:画像2

「ボリュームの保守タスクを実行」権限を付与

SQL Server のサービスアカウントに対して、「ボリュームの保守タスクを実行」権限を付与します。

[ローカル セキュリティ ポリシー]を開きます。
Instant File Initialization(IFI)を有効にする:画像3

左側のツリービューで、[ローカルポリシー]の[ユーザー権利の割り当て]のノードをクリックして選択します。
Instant File Initialization(IFI)を有効にする:画像4

右側のエリアで [ボリュームの保守タスクを実行] の項目を探してダブルクリックします。
Instant File Initialization(IFI)を有効にする:画像5

下図の[ボリュームの保守タスクを実行のプロパティ]のダイアログが表示されます。 [ユーザーまたはグループの追加]ボタンをクリックします。
Instant File Initialization(IFI)を有効にする:画像6

下図の[ユーザー または グループ の選択]ダイアログが表示されます。
Instant File Initialization(IFI)を有効にする:画像7

[選択するオブジェクト名を入力してください] のテキストボックスに、先ほど調べた SQL Server のサービスアカウントを入力して追加します。
Instant File Initialization(IFI)を有効にする:画像8

SQL Server のサービスアカウントが追加できました。[OK]ボタンをクリックしてダイアログボックスを閉じます。
Instant File Initialization(IFI)を有効にする:画像9
Instant File Initialization(IFI)を有効にする:画像10

SQL Server の再起動

SQL Serverを再起動します。[サービス]を開きます。サービスの一覧から [SQL Server] のサービスを選択します。
Instant File Initialization(IFI)を有効にする:画像11

右クリックしてポップアップメニューを表示します。メニューの[再起動]の項目をクリックします。
Instant File Initialization(IFI)を有効にする:画像12

設定の確認

再起動後、先ほど実行したSQLを実行して、Instant File Initialization(IFI)が有効になっているかを確認します。

-- IFI が有効か確認
SELECT 
    CASE WHEN service_account = 'NT Service\MSSQLSERVER' THEN 'サービスアカウント要確認' END,
    instant_file_initialization_enabled
FROM sys.dm_server_services
WHERE servicename LIKE 'SQL Server (%';


(列名なし)instant_file_initialization_enabled
サービスアカウント要確認Y

Instant File Initialization(IFI)を有効にする:画像13
Instant File Initialization(IFI)を有効にする:画像14

以上で、Instant File Initialization(IFI)を有効にできました。


AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2026-05-03