周囲のストリームインターフェイスを使用して、blobからバイナリデータを読み取りたいのですが。
しかし、blobを完全にクライアント側にロードして、メモリまたはファイルに保存する必要はありません。
BLOBを使用するコードでシークと読み取りができるようにしたいのですが、シーク/読み取りをサポートするために必要なデータだけがネットワーク経由で提供されます。
つまり、ブロブが250MBのPhotoshopイメージであるかのように見せかけます。サムネイルコードは、画像の最初の8バイトを読み取り、それがPSDファイルであることを認識し、3kサムネイルを含むオフセットを探し、それを読み取る方法を知っています。
したがって、250MBのメモリを割り当てようとしたり、一時ファイルを作成したり、250MBがネットワーク経由で転送されるのを待つ必要はありません。架空のSQLServerBlobStreamServerCursorクラスは、実際に要求されたものにトラフィックをデータ化する方法を知っています。
リサーチ
方法:ADO.NETおよびVisual Basic .NETでチャンキングを使用してBLOB列との間でファイルを 読み書きします。これは、チャンクでの読み取りと書き込みが可能であることについて説明しています。しかし、コードが読めないので、私はそれを我慢できません。後で見ていきます。
また、この男は、データを書き込むための新しいSQL Server 2005 [ column .Write()] 3 T-SQL構文について言及しました-データを小さなチャンクに書き込むために使用できます(サーバーのすべてのメモリを消費しないようにするため)。たぶん[列]があります。読み取り()疑似メソッド
Microsoftの記事:SQLServerにBLOB値を書き込む際のリソースの節約