FILESTREAM の使用を開始する前に、SQL Server データベース エンジンのインスタンスで FILESTREAM を有効にする必要があります。 このトピックでは、SQL Server 構成マネージャーを使用して FILESTREAM を有効にする方法について説明します。
注
64 ビット オペレーティング システムで実行されている 32 ビット バージョンの SQL Server で FILESTREAM を有効にすることはできません。
FILESTREAM の有効化
FILESTREAM 設定を有効にして変更するには
[スタート] メニューで、[すべてのプログラム] をポイントし、[SQL Server 2014] をポイントし、[構成ツール] をポイントして、[SQL Server 構成マネージャー] をクリックします。
サービスの一覧で、[ SQL Server サービス] を右クリックし、[ 開く] をクリックします。
SQL Server 構成マネージャー スナップインで、FILESTREAM を有効にする SQL Server のインスタンスを見つけます。
インスタンスを右クリックし、[ プロパティ] をクリックします。
[ SQL Server のプロパティ ] ダイアログ ボックスで、[ FILESTREAM ] タブをクリックします。
[ Transact-SQL アクセスに対して FILESTREAM を有効にする ] チェック ボックスをオンにします。
Windows から FILESTREAM データを読み書きする場合は、[ ファイル I/O ストリーミング アクセスに対して FILESTREAM を有効にする] をクリックします。 [Windows 共有名] ボックスに 、Windows 共有の名前を 入力します。
リモート クライアントがこの共有に格納されている FILESTREAM データにアクセスする必要がある場合は、[ リモート クライアントに FILESTREAM データへのストリーミング アクセスを許可する] を選択します。
[適用] をクリックします。
SQL Server Management Studio で [新しいクエリ] をクリックして、クエリ エディターを表示します。
クエリ エディターで、次の Transact-SQL コードを入力します。
EXEC sp_configure filestream_access_level, 2 RECONFIGURE
[実行] をクリックします。
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 ファイル グループを個別のボリュームに割り当て、ボリュームの管理機能を使用することで、領域を管理し、ポリシーを間接的に適用できます。