2

私たちのシステムは、最大 3k のサイズの tiff 画像を保存する必要があります。一度に約 300 枚の画像を受け取り、それらを迅速に処理する必要があります。約 100,000 枚の画像が受信されると、画像はシステムから別のアーカイブ システムに転送されるか、削除されます。

画像ファイルの初期保存に関して、最高のパフォーマンスを探しています。アーカイブ用にイメージを転送するタスクは、パフォーマンスがそれほど重要ではありません。

SQL Server またはファイル システムのどの格納場所を使用すると、tiff 画像を保存する際のパフォーマンスが向上しますか?

他に注意すべき考慮事項や落とし穴はありますか?

4

4 に答える 4

2

SQL Server 2008 バージョンには、FILESTREAM と呼ばれる新しい機能があります。彼らのドキュメントの一部には、ベスト プラクティスに関するセクションもあり、MS 関係者は、BLOB オブジェクトが通常 1 MB より大きい場合は FILESTREAM を使用する必要があると述べています。

そのMSDNページには次のように記載されています:

FILESTREAM を使用する場合 次の条件に該当する場合は、FILESTREAM の使用を検討する必要があります。 - 格納されるオブジェクトは、平均して 1 MB を超えています。小さいオブジェクトの場合、データベースに varbinary(max) BLOB を格納すると、多くの場合、ストリーミング パフォーマンスが向上します。

したがって、3 KB の TIFF を使用すると、SQL Server 2005 テーブルの VARBINARY(MAX) フィールド内にうまく格納できると思います。SQL Server の 8k ページ サイズよりもさらに小さいため、うまく収まります。

BLOB を独自のテーブルに配置し、そこから「ベース」データ行を参照することも検討してください。そうすれば、基本データ (int、varchar など) のみをクエリする必要がある場合、BLOB が他のデータと混在して格納されているためにクエリが滞ることはありません。

マルク

于 2009-08-05T17:25:09.610 に答える
2

私の経験では、SQL Server は BLOB をデータベースに格納するのに適しています。クエリや正規化などに関連するベスト プラクティスに従っている限り、うまく機能することがわかりました。

なんらかの理由で、個人的には巨大な PDF ファイル、DOC ファイル、JPG ファイルをデータベースに保存したくありませんが、Microsoft SharePoint はまさにそれを実現し、うまく機能させています。

私は間違いなく自分のデータベースにブロブを置くことを検討します。

于 2009-08-05T17:17:32.560 に答える
0

INPE/Brazil のサテライト カタログ システムは、ファイル システムに保存されている tiff 画像の参照を保存します。ただし、画像は少し大きくなります - +/- 100 MB。ファイルをブラウザで表示する必要がある場合、php コードはディスクの tiff コンテンツを読み取り、それを描画します。

于 2009-08-05T17:29:53.393 に答える