Дата публикации: 14.01.2011

4 ключевых отличия нового IBProvider v3.4, которые делают ваши приложения еще быстрее

  1. Можно прерывать длительную загрузку результирующих множеств в SQL-скриптах
  2. Можно управлять отложенной загрузкой данных и настраивать её по своему усмотрению
  3. Фоновый сборщик мусора стал многопоточным
  4. Ускорена работа с BLOB-полями и массивами в обновляемых множествах.

1. Теперь можно прерывать загрузку результирующих множеств в SQL-скриптах

В новой версии IBProvider улучшена реализация отмены выполнения команды. Теперь можно прерывать не только выполнение запросов, но и загрузку результирующих множеств из SQL-скриптов. Это позволяет сбросить длительную операцию загрузки и продолжить работу вашего приложения.

2. Теперь вы можете управлять отложенной загрузкой данных

Для оптимизации производительности данные, которые хранятся в массивах и BLOB-полях, не передаются клиенту во время выполнения основного запроса. Вместо этого они подгружаются по необходимости, в момент, когда клиент явно запрашивает требуемую информацию.

Новые свойства инициализации IBProvider позволяют изменить данное поведение. Теперь вы можете запретить отложенную загрузку BLOB и массивов для колонок и для OUT-параметров. За это отвечают соответствующие свойства: deferred_data и deferred_out_param.

Особенности работы отложенного чтения с OUT-параметрами и транзакциями

По умолчанию, если используются OUT-параметры совместно с автоматическими транзакциями, то данные загружаются сразу и отложенная загрузка запрещена. Это позволяет завершить автоматическую транзакцию еще до выхода из метода ICommand::Execute (в случае ADODB — Command.Execute)

Если в команде используются OUT-параметры, отложенная загрузка возможна только при получении BLOB-данных в виде объекта (Storage Object).

Если отложенная загрузка разрешена, то объект будет загружать данные из БД по требованию и для этого требуется активная транзакция.

Если отложенная загрузка запрещена, то BLOB-объект сначала будет загружен в локальное хранилище временных данных, а объект будет возвращать данные из этого хранилища. В этом случае, активная транзакция не требуется.

Что такое локальное хранилище временных данных?

Для хранения данных, с которыми производится работа в рамках одного подключения, IBProvider может создавать временный страничный файл. Первоначально данных загружаются в оперативную память кеша, размер которого определяется новым свойством инициализации temp_stg__memory_usage. Если новые данные не помещаются в кеш, самая старая информация выгружается в файл, а новая информация остается в памяти.

3. Фоновый сборщик мусора стал многопоточным

В предыдущих выпусках фоновый сборщик мусора обновляемых множеств был однопоточным. Теперь он распараллеливает свою работу. Локальное хранилище временных данных также использует фоновый многопоточный сборщик мусора.

4. Ускорена работа с BLOB-полями и массивами в обновляемых множествах.

Впервые для удаления BLOB-данных из локальных хранилищ используются отложенные и асинхронные операции. Это позволяет сократить реальное время, которое основной пользовательский поток (thread) проводит внутри кода IBProvider.


Благодаря 4 ключевым изменениям,
достигается еще большая производительность вашего приложения,
которое будет продолжать выполнять свою основную задачу,
пока IBProvider будет делать всю «грязную» работу в фоновом режиме.

Доверьте «грязную» работу новому IBProvider ver.3.4




Помимо новейшего драйвера, вы ГАРАНТИРОВАНО получите
все последующие версии в течение года абсолютно БЕСПЛАТНО!

Дата публикации: 14.01.2011. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.