FILESTREAM の有効化と構成

適用対象:SQL Server

FILESTREAM の使用を開始するには、SQL Server データベース エンジンのインスタンスで FILESTREAM を有効にする必要があります。 このトピックでは、SQL Server 構成マネージャーを使用して FILESTREAM を有効にする方法について説明します。

FILESTREAM の有効化

  1. [スタート] メニューで、[すべてのプログラム] > [SQL Server] > [構成ツール] の順に移動し、[SQL Server 構成マネージャー] を選択します。

    Note

    新しいバージョンの Windows では、次の手順に従って SQL Server 構成マネージャーを開きます

  2. サービスの一覧で、[SQL Server サービス] を右クリックし、[開く]を選択します。

  3. [SQL Server 構成マネージャー] スナップインで、FILESTREAM を有効にする SQL Server のインスタンスを探します。

  4. そのインスタンスを右クリックし、[プロパティ] を選択します。

  5. [SQL Server のプロパティ] ダイアログ ボックスで、[FILESTREAM] タブを選択します。

  6. [Transact-SQL アクセスに対して FILESTREAM を有効にする] チェック ボックスをオンにします。

  7. Windows から FILESTREAM データの読み取りと書き込みを行う場合は、[ファイル I/O ストリーム アクセスに対して FILESTREAM を有効にする] を選択します。 Windows 共有の名前を [Windows 共有名] ボックスに入力します。

  8. この共有に格納された FILESTREAM データにリモート クライアントからアクセスする必要がある場合は、 [リモート クライアントに FILESTREAM データへのストリーム アクセスを許可する]を選択します。

  9. [適用] を選択します。

  10. SQL Server Management Studio で [新しいクエリ] を選択して、クエリ エディターを表示します。

  11. クエリ エディターで、次の Transact-SQL コードを入力します。

    EXEC sp_configure filestream_access_level, 2;
    RECONFIGURE;
    
  12. [実行] を選択します。

  13. SQL Server サービスを再起動します。

ベスト プラクティス

物理的な構成とメンテナンス

FILESTREAM ストレージ ボリュームを設定する場合は、次のガイドラインを考慮してください。

  • FILESTREAM コンピューター システム上で短いファイル名を無効にします。 短いファイル名の作成には、長い時間がかかります。 短いファイル名を無効にするには、Windows fsutil ユーティリティを使用します。

  • 磁気ストレージを使用して、FILESTREAM コンピューター システムを定期的に最適化します。

  • 64 KB の NTFS クラスターを使用します。 圧縮されたボリュームは、4 KB の NTFS クラスターに設定する必要があります。

  • FILESTREAM ボリューム上のインデックスの作成を無効にし、disablelastaccess を設定します。 disablelastaccess を設定するには、Windows fsutil ユーティリティを使用します。

  • 必要でない場合は、FILESTREAM ボリューム上でのウイルス スキャンを無効にします。 ウイルス スキャンが必要な場合は、問題のあるファイルを自動的に削除するポリシーを設定しないようにします。

  • RAID レベルを設定および調整して、フォールト トレランスとアプリケーションで求められるパフォーマンスを実現します。

RAID レベル 書き込みパフォーマンス 読み取りパフォーマンス フォールト トレランス 解説
RAID 5 正常 正常 非常に良い パフォーマンスは、1 台のディスクまたは JBOD よりも高く、RAID 0 またはストライピング機能を備えた RAID 5 よりも低くなります。
RAID 0 [非常に良い] [非常に良い] なし
RAID 5 + ストライピング [非常に良い] [非常に良い] [非常に良い] 最も高価なオプションです。

物理的なデータベース設計

FILESTREAM データベースを設計するときは、次のガイドラインを考慮してください。

  • FILESTREAM 列には対応する uniqueidentifier ROWGUID 列が存在する必要があります。 また、この種のテーブルには、一意なインデックスが存在する必要があります。 通常、このインデックスは、クラスター化インデックスではありません。 データベースのビジネス ロジックでクラスター化インデックスが求められる場合は、インデックスに格納されている値がランダムでないことを確認する必要があります。 格納されている値がランダムである場合、テーブルの行が追加または削除されるたびにインデックスの並べ替えが発生します。

  • パフォーマンス上の理由から、FILESTREAM ファイル グループおよびコンテナーは、オペレーティング システム、SQL Server データベース、SQL Server ログ、tempdb、ページング ファイル以外のボリュームに配置する必要があります。

  • 領域管理とポリシーは、FILESTREAM では直接サポートされません。 ただし、それぞれの FILESTREAM ファイル グループを別個のボリュームに割り当て、ボリュームの管理機能を使用することで、領域の管理とポリシーの適用を行うことができます。