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