Microsoft Research による To Blob or Not To Blob という優れた論文があります。 .
多数のパフォーマンス テストと分析を行った後の結論は次のとおりです。
- <リ>
写真やドキュメントのサイズが通常 256K 未満の場合は、データベースの VARBINARY 列に格納する方が効率的です
<リ>通常、写真やドキュメントのサイズが 1 MB を超える場合は、ファイル システムに保存する方が効率的です (また、SQL Server 2008 の FILESTREAM 属性を使用すると、それらはトランザクション制御下にあり、データベースの一部になります)
<リ>この 2 つの間では、用途に応じて少しトスアップします
写真を SQL Server テーブルに保存する場合は、それらの写真を保存するために別のテーブルを使用することを強くお勧めします。従業員の写真を従業員テーブルに保存しないでください。別のテーブルに保存してください。そうすれば、従業員の写真をクエリの一部として常に選択する必要がないと仮定すると、Employee テーブルは無駄のない、平均的な、非常に効率的な状態を保つことができます。
ファイル グループについては、ファイルとファイル グループのアーキテクチャ を確認してください。 イントロ用。基本的に、最初から大規模なデータ構造用に別のファイル グループを使用してデータベースを作成するか、後でファイル グループを追加します。 「LARGE_DATA」としましょう。
これで、VARCHAR(MAX) または VARBINARY(MAX) 列を格納する必要がある新しいテーブルを作成する必要がある場合はいつでも、大きなデータ用にこのファイル グループを指定できます。
CREATE TABLE dbo.YourTable (....... define the fields here ......) ON Data -- the basic "Data" filegroup for the regular data TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
プレ>ファイル グループに関する MSDN のイントロをチェックして、いろいろ試してみてください。