TClientDataset を開き、3 つの TBlobfields を含む 10.000 行をフェッチするには3 分かかります。
まったく同じデータを開きますが、BLOB フィールドを Varchar としてキャストすると、1 秒かかります。
唯一の違いは、TQuery (または TsqlQuery) には TBlobfield ではなく TStringfield があることです。しかし、データは同じです。ファイルに保存されたテーブル全体は、約 3 MB です。TsqlQuery、または (firebird) データベースに接続するための TQuery を使用しても同じ結果が得られます。
データベースはサーバー上にあり、Firebird 2.1 を実行しています。クライアントでデータベースを実行すると(両方とも1秒未満)、違いがなくなるため、ネットワークトラフィックに問題があると思われます...
さらに奇妙なことに、Clientdataset が実際に BLOB フィールドで満たされているかどうかは問題ではありません。したがって、clientdataset に永続フィールドが 1 つしかない場合 (number integer)、パフォーマンスは同じです...
このバグ(?)は私にとって大きな問題です...誰かがこれを説明してくれることを願っています...