IBProvider 3.0.0.7575. Пул запросов и улучшение работы с Delphi.
Поддержка получения списка таблиц в Delphi в режиме Client Cursor Engine
Получение списка таблиц приведено в соответствие с требованиями компонентов dbGo в режиме Client Cursor Engine. Новая версия Microsoft Visual C++ 2005 SP1 Runtime
В IBProvider v3.0.0.7575 RC4 используется более новая версия Microsoft Visual C++ 2005 SP1 Runtime, которая так же включена в дистрибутив. Оптимизация производительности повторяющихся запросов
В новом IBProvider v3 реализован пул SQL-запросов, который хранит подготовленные и созданные команды и позволяет значительно экономить время при большом числе повторяющихся запросов.
Пул запросов будет особенно актуален для следующих задач:
Пул запросов и метаданные
Пул запросов может мешать изменению метаданных. Поэтому для решения возможных проблем с кэшированием, при выполнении DDL команд происходит сброс пула запросов.
Особенности работы пула запросов
Пул запросов - это список, в котором хранятся два типа запросов:
- Подготовленный запрос, связанный с конкретной командой SQL. Он помещается в пул, после того как клиент освободит объект команды или начнет подготавливать другой запрос.
- Инициализированный запрос появляется в пуле, когда клиент устанавливает некорректный текст SQL и сервер отказывает в подготовке такого запроса. Это инициализированный запрос помещается в пул для последующего использования.
Когда пользователь подготавливает новый запрос
- Запрос с соответствующим SQL ищется среди подготовленных запросов. Если найден подготовленный запрос с таким же SQL-текстом, то он возвращается клиенту.
- Если запрос, с соответствующим текстом не найден в пуле, то сначала задействуются инициализированные запросы, потом подготовленные запросы, просуществовавшие в пуле более 30 секунд (свойство stmt_cache__req_life_time) но связанные с другими SQL-командами.
- Если в пуле находятся только подготовленные запросы, связанные с другими командами и добавленные менее 30 секунд назад (свойство stmt_cache__req_life_time) или пул запросов пуст, то инициализируется и подготавливается новый запрос.
При достижении максимального количества запросов в пуле (свойство stmt_cache__size) старые запросы начинают вытесняться новыми. Настройки пула запросов
Свойства, управляющие поведением пула запросов:
- stmt_cache__time - минимальное время жизни инициализированного или подготовленного запроса. По умолчанию 60 секунд. Любой запрос, находящийся в пуле больше чем stmt_cache__time секунд будет удален.
- stmt_cache__req_life_time - минимальное время жизни подготовленного запроса. По умолчанию 30 секунд.
- stmt_cache__size - максимальное количество ресурсов. По умолчанию 1024.
Отключение пула запросов
По-умолчанию, пул запросов включен. Для отключения пула необходимо установить любое из свойств stmt_cache__time и stmt_cache__size равным 0. Настройка пула запросов через диалог Data Links
Для удобства использования настройка пула запросов может осуществляться через диалог Data Links.
Скачать IBProvider Professional 3.0.0.7575 RC4