Открытие TClientDataset и выборка 10.000 строк, содержащих 3 поля TBlob, занимает 3 минуты.
Открытие точно тех же данных, но преобразование BLOB-полей как Varchar, занимает 1 секунду!
Единственная разница в том, что TQuery (или TsqlQuery) имеет TStringfields вместо TBlobfields. но данные те же. Вся таблица, сохраненная в файл, занимает около 3 МБ. Я получаю те же результаты, используя TsqlQuery или TQuery для подключения к базе данных (firebird).
База данных находится на сервере под управлением Firebird 2.1. Разница исчезла при запуске базы данных на клиенте (обе <1 секунда), поэтому я полагаю, что это должно быть что-то с сетевым трафиком ...
Это становится еще более странным: не имеет значения, действительно ли Clientdataset заполнен BLOB-полями. Итак, если clientdataset имеет только одно постоянное поле (целое число), производительность такая же ...
Эта ошибка (?) - большая проблема для меня ... Надеюсь, кто-нибудь сможет это объяснить ...