💾

SQL ServerでFILESTREAMを有効にする方法

2024/10/15に公開

解法

既存のSQL ServerデータベースにFILESTREAMを有効にするには、以下の手順を実行します。

  1. SQL ServerインスタンスでFILESTREAMを有効化

    SQL Server Configuration Managerを使用してFILESTREAMを有効にします。

    • SQL Server Configuration Managerを開き、対象のインスタンスを右クリックし、プロパティを選択します。
    • FILESTREAMタブで、Enable FILESTREAM for Transact-SQL accessを有効にします。

    また、SQL Server Management Studio(SSMS)で以下のクエリを実行してFILESTREAMアクセスレベルを設定します。

    EXEC sp_configure filestream_access_level, 2;
    RECONFIGURE;
    
  2. データベースにFILESTREAMファイルグループを追加

    データベースにFILESTREAMファイルグループと物理ファイルを追加します。

    ALTER DATABASE YourDatabase
    ADD FILEGROUP FileStreamGroup CONTAINS FILESTREAM;
    
    ALTER DATABASE YourDatabase
    ADD FILE (
        NAME = N'YourDatabase_FileStream',
        FILENAME = N'C:\Path\To\Your\FileStreamDirectory'
    ) TO FILEGROUP FileStreamGroup;
    

    C:\Path\To\Your\FileStreamDirectoryを実際のディレクトリパスに置き換えてください。

  3. テーブルにFILESTREAM列を追加

    FILESTREAMを使用するために、既存のテーブルにVARBINARY(MAX)型の列を追加します。

    ALTER TABLE Documents
    ADD DocumentData VARBINARY(MAX) FILESTREAM NULL;
    

解説

FILESTREAMを利用することで、大容量のバイナリデータ(例:画像やドキュメントファイル)をデータベースに格納しつつ、Windowsファイルシステム上で効率よく管理することが可能になります。FILESTREAMは、データベースのACIDトランザクション管理とファイルシステムの利便性を融合させるために役立ちます。

上記の手順では、まずSQL ServerインスタンスとデータベースレベルでFILESTREAMを有効化し、次に必要なファイルグループと物理ファイルを設定します。最後にテーブルにFILESTREAM列を追加して、ファイルデータを格納できるようにします。

補足情報

  • FILESTREAMを使用する場合、SQL Serverのバックアップ戦略を見直すことが推奨されます。FILESTREAMデータは通常のデータベースバックアップに含まれるため、大容量データの取り扱いには十分なディスク容量とバックアップ時間を確保してください。
  • FILESTREAM列は、Windowsファイルシステムと連携しているため、SQL Serverのパフォーマンスにも影響を及ぼす可能性があります。そのため、ファイルデータのサイズやアクセス頻度に応じた最適な設計が必要です。

Discussion