1

昨日、ファイルをどのように保存するかについて質問しました。いくつかの調査の後、私はファイルをデータベースの「中に」保存することにしました。

filestreamを使用してファイルを保存することと、データベース自体にファイルを保存することの違いを確認しました。

それぞれに長所と短所があります。私の研究を助けるために、このサイトは私を大いに助けてくれました:http: //www.codeproject.com/KB/database/SqlFileStream.aspx

つまり、基本的に、ファイルが1 MBより大きい場合は、filestreamを使用してファイルを保存する方がよいと言われています。

しかし、ファイルストリーミングに関する別の問題を発見しました。データベース内のレコードを削除しても、ファイルはファイルシステム上にまだ存在しています。

したがって、皆さんの意見が必要です。何を使う?ファイルストリームまたはVARBINARYを使用してデータベースにファイルを保存しますか?

Grtz、M。

4

2 に答える 2

7

ファイルシステム上のデータは、データベースからデータを削除した直後に削除される(すべきです)が、これは別のシステムバックグラウンドスレッドで行われるため、基本的にガベージコレクターが再度実行されるまでファイルシステムに残る可能性があります。ただし、ファイルシステムAPI(つまり、tsqlまたはストリーミング)を介してアクセスされるすべての結果は、ファイルシステムデータがまだディスク上にあるかどうかに関係なく、削除されたものにはアクセスしないことが保証されます(ACIDはファイルストリームで保証されます)。

于 2009-11-10T12:22:25.677 に答える
4

ファイルストリームを使用します。

データベースはリレーショナルデータを格納するように設計されており、ファイルシステムはファイルを格納するように設計されています。

マイクロソフトの従業員から、SQL Server 2000/2005(覚えていない)に大きなブロブを格納するのは良い考えではないとよく耳にしました。

バックアップも検討してください。データベースファイルは1つのファイルです(編集:そのように構成した場合)。ファイルストリームを使用している場合は、個々のファイルをバックアップできます。

于 2009-11-10T12:19:52.140 に答える