IBProvider 3.0.0.4963. В 2,5 раза увеличена производительность с отключенным кешем метаданных
Краткая аннотация релиза
Новая сборка IBProvider v3 Release Candidate 3 [build 3.0.0.4963]
- Улучшена работа с NUMERIC-типами.
- В 2,5 раза увеличена производительность с отключенным кэшем метаданных.
- Доработаны схем метаданных. В том числе в схемах TABLE_INFO и TABLES добавлена классификация внешних (EXTERNAL TABLE) и временных таблиц (GLOBAL TEMPORARY PRESERVE/DELETE) начиная с Firebird 2.1 и InterBase 7.5.
- Корректная обработка активных транзакций в пуле подключений.
Новые сборки IBProvider v1.9.9.2547 и IBProvider v2.6.3.2547
- Исправлена ошибка в описании колонок BLOB-полей.
- Корректная обработка активных транзакций в пуле подключений.
IBProvider v3 Release Candidate 3 build 3.0.0.4963
Улучшена работа с NUMERIC-типами.
- Корректное представление типов NUMERIC- колонок с нулевым масштабом. Не будет работать для InterBase 4.x и InterBase 5.x.
- Изменена точность NUMERIC-колонок: 4,9,18. До этого назначалась точность: 5/10/19. Точность зависит от базового типа, в котором хранится NUMERIC (SHORT, LONG, INT64).
- Изменения распространяются на обычные колонки и колонки с массивами.
Обратная совместимость.
Для обратной совместимости добавлены свойства инициализации numeric_i2_rules, numeric_i4_rules, numeric_i8_rules. Укажите эти свойства в строке подключения со значением 3, и вы вернете предыдущее поведение провайдера.
Известные проблемы при работе с NUMERIC и способы их решения
Cерверы (IB, FB, Ya) реализуют упрощенный контроль точности. Они позволяет сохранять, к примеру, число 32000 в колонке NUMERIC(4,0). MS SQL Server 2005 проверяет точность загруженных данных. Если она отличается от описания указанного в колонке — генерирует ошибку:
Для определения поведения провайдера в данном случае используйте свойства numeric_i2_rules, numeric_i4_rules, numeric_i8_rules.
Корректное взаимодействие с пулом подключений
- При использовании SQL для старта транзакций, ADODB может поместить в пул подключение с активной транзакцией. Как следствие, при повторном использовании, пул может вернуть подключение с незавершенной транзакцией. В IBP v1, v2, v3 добавлено свойство инициализации reset_ds_tr_rule, которое определяет поведение провайдера в таких ситуациях.
- Реализован сброс свойств сессии, повторно используемого подключения, в начальное состояние.
Оптимизация загрузки метаданных с отключенным кэшем
При указании в строке подключения schema_cache=0, провайдер использует параметризованные запросы, учитывающие ограничения.
Это сокращает трафик между клиентом и сервером и увеличивает скорость работы до 2.5 раз при отключенном кеше метаданных по сравнению с предыдущими версиями. По умолчанию schema_cache=1 (Кэш метаданных включен).
Классификация внешних и временных таблиц
В схемах метаданных TABLES, TABLES_INFO в колонке TABLE_TYPE добавлены новые классификации таблиц:
- EXTERNAL TABLE — все типы и версии серверов
- GLOBAL TEMPORARY PRESERVE — InterBase 7.5, Firebird 2.1 и старше.
- GLOBAL TEMPORARY DELETE — InterBase 7.5, Firebird 2.1 и старше.
Другие изменения в схемах метаданных
- В TABLES_INFO, TABLES добавлена колонка «EXTERNAL_FILE».
- В TABLES_OWNER добавлена колонка «TABLE_OWNER».
- Игнорируется регистр текста, переданного в ограничении для колонки «TABLE_CONSTRAINT::CONSTRAINT_TYPE».
Новые сборки IBProvider v2, v1
- IBProvider v1 [1.9.9.2547]
- IBProvider v2 [2.6.3.2547]
Реализованы некоторые нововведения из IBProvider v3 RC3
- Добавлено игнорирование регистра текста, переданного в ограничении для колонки «TABLE_CONSTRAINT::CONSTRAINT_TYPE».
- Корректное взаимодействие с пулом подключений.
Кроме того исправлена ошибка в описании колонок BLOB-полей
Из-за ошибки, допущенной в релизе 2.6.1 (2.6.2), колонки с BLOB полями содержали ошибочный флаг DBCOLUMNFLAGS_ISFIXEDLENGTH.
Скачать IBProvider Professional Edition (64/32 bit) [версия: 3.0.0.4963]