English version Russian version

Производительность новой версии IBProvider возросла в 4,5 раза

В новой версии IBProvider устранена причина низкой производительности сборок IBProvider, откомпилированных в Visual Studio.

Теперь эти сборки начали работать в несколько раз быстрее как в однопоточных, так и в многопоточных приложениях.

По результатам тестирования,
новая версия IBProvider Professional v3 теперь
работает в 4.5 раза быстрее своих предшественников.


Вы сами можете убедиться насколько новая версия IBProvider работает эффективнее предыдущих.

На картинке представлена диаграмма тестирования сборок в нашей тестовой системе:


* По оси X время, затраченное на тесты. Указано в секундах.
  • Красный график - старая версия IBProvider v 3.0.0.7798.
  • Синий график - новая версия IBProvider v.3.0.0.7866,

В таблице приведены результаты тестирования производительности в комплексном OLE DB тесте:

Старые версии IBProvider Версия Компилятор Имя файла в дистрибутиве Время работы в секундах
IBProvider 32 bit v.3.0.0.7798 BCB5 _IBProvider_v3_i.dll 118,7 сек.
IBProvider 32 bit VS2008 _IBProvider_v3_vc9_i.dll 439 сек.
IBProvider 64 bit VS2008 _IBProvider_v3_vc9_w64_i.dll 377,9 сек.
Новые версии IBProvider
IBProvider 32 bit v.3.0.0.7866 BCB5 _IBProvider_v3_i.dll 115,4 сек.
IBProvider 32 bit VS2008 _IBProvider_v3_vc9_i.dll 99 сек.
IBProvider 64 bit Лидер VS2008 _IBProvider_v3_vc9_w64_i.dll 85 сек.

Описание тестовой системы:

Database Server:Firebird 2.5.0.25784 SuperServer x64 (VS2008 SP1+). Local Protocol.
OS version:Windows Vista Ultimate x64 SP2+
Server:Q6600/4GB DDR3/ICH9R RAID10 x4 WD RE3 1TB
Test cases:Исходные тексты тестов находятся в "TestCode\ActiveX\IBP\oledb_test"
(Маска тестов - "cmd*")

Исправлена ошибка, связанная с пулом запросов

В результате нагрузочного тестирования последней версии IBProvider 3.0.0.7866, была выявлена и исправлена ошибка, связанная с пулом запросов. Ошибка проявлялась, начиная с версии IBProvider 3.0.0.7575. Всем кто использует эту версию - рекомендуем обновиться.

Описание ошибки:

В некоторых особо запущенных случаях с производительностью сервера (использовалась отладочная сборка Firebird 2.5) IBProvider мог зависать при явном вызове ADODB.Connection.Close.

Новый компонент LCPI.IBP.Samples.RowCursor - более быстрая замена ADODB.Recordset

В дистрибутив IBProvider добавлен новый компонент «LCPI.IBP.Samples.RowCursor», который доступен как в откомпилированном виде, так и в качестве исходных кодов. Это упрощенный аналог компоненты ADODB.Recordset, но он предоставляет более быстрый доступ к данным за счет следующих функций:

  • Вместо EOF/MoveNext, компонент предоставляет унифицированный метод Fetch.
  • ADODB.Recordset при каждом обращении к Field.Value, делает запрос к OLEDB провайдеру и не кэширует полученные данные, а RowCursor может сразу загрузить данные всех полей записи и применяет кэширование.
  • Оптимизирован вызов IDispatch::Invoke для основных методов. Это ускоряет работу скриптовых программ.
  • Использует интерфейс IOpenRowset, который позволяет выполнять SQL-запросы через объект сессии, без создания команды. Данная возможность поддерживается только в IBProvider v3.

Особенности работы компонента:

  • Совместим с ADODB. Использует ADODB.Connection для подключения к БД.
  • Поддерживает всех типы данных, включая BLOB, массивы и бинарные типы.
  • Пока реализован только однонаправленный доступ к данным.

Сравнительные тесты на VBScript (используется интерфейс IDispatch) показали что LCPI.IBP.Samples.RowCursor на некоторых операциях работает до 30% быстрее, чем ADODB.Recordset.

Исходный код компонента

Исходный код LCPI.IBP.Samples.RowCursor доступен в дистрибутиве IBProvider: (Samples\oledb\sample_com_object)

Примеры использования компонента

Примеры работы с компонентом вы найдете в тестовой системе IBProvider, которая является частью дистрибутива:

  • TestCode\ActiveX\IBP\test_system\tests\test.ibps.row_cursor.01.vbs
  • TestCode\ActiveX\IBP\test_system\tests\test.ibps.row_cursor.02.vbs
  • TestCode\ActiveX\IBP\test_system\tests\test.ibps.row_cursor.03.vbs
  • TestCode\ActiveX\IBP\test_system\prog\prog_perf__02_row_cursor.wsf
  • TestCode\ActiveX\IBP\test_system\prog\prog_perf__03.wsf

Изменения в дистрибутиве

Теперь в состав дистрибутива IBProvider Professional входят 2 новые оптимизированные dll:

  • _IBProvider_v1_vc9_i.dll (IBProvider v1);
  • _IBProvider_v2_vc9_i.dll (IBProvider v2);

Для их сборки вместо Free Borland C++ compiler используется современный компилятор от Visual Studio 2008 SP1+. Они заменили файлы:

  • _IBProvider.dll;
  • _IBProvider_v2.dll;

В новый инсталлятор включены только оптимизированные сборки IBProvider v1 и IBProvider v2:

  1. _IBProvider_v1_vc9_i.dll, _IBProvider_v2_vc9_i.dll, (компилятор Visual Studio 2008 SP1+);
  2. _IBProvider_v1_vc9_w64_i.dll и _IBProvider_v2_vc9_w64_i.dll (компилятор Visual Studio 2008 SP1+); Регистрируются при установке на 64 битную платформу.
  3. _IBProvider_i.dll, _IBProvider_v2_i.dll (компилятор Free Borland C++ compiler); Регистрируются инсталлятором.



Забобрить эту страницу! Добавить на Memori.ru Mr Wong Добавить в закладки МоёМесто.ru Добавить на Rumarkz Добавить на Rucity Digg It Reddit Technorati Del.icio.us Google Bookmarks Slashdot StumbleUpon Yahoo MyWeb Все

Дата публикации: 16.11.2009. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт http://www.ibprovider.com обязательна. Версия для печати: Производительность новой версии IBProvider возросла в 4,5 раза

Все новости IBProvider:
08.07.2010 Доступна новая версия IBProvider Professional v3 RC5 с поддержкой обновляемых множеств.
11.06.2010 Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена
07.05.2010 Новая версия IBProvider 3.0.0.9496 доступна для скачивания. Обновлен парсер параметров запросов и улучшен механизм блокировки COM-Объектов
19.04.2010 Новая версия IBProvider доступна для скачивания.
Изменения в парсере SQL-запросов в IBProvider v3.
Поддержка SQLSTATE и NativeError для любых версий Firebird, Interbase and Yaffil
15.03.2010 Три причины, по которым Вам стоит перейти на новый IBProvider
14.02.2010 Успейте получить бесплатную лицензию на IBProvider Professional v.3.0.00.8628
18.01.2010 Сегодня IBProvider исполнилось 10 лет. Представляем новую юбилейную версию IBProvider с улучшенной поддержкой DDL и обновляемых множеств.
15.12.2009 Публикация текстов хранимых процедур в схеме метаданных PROCEDURES
16.11.2009 Производительность новой версии IBProvider возросла в 4,5 раза
07.10.2009 IBProvider 3.0.0.7798. Улучшена работа с большими объемами данных.
13.08.2009 В новом IBProvider 3.0.0.7575 реализован пул запросов и улучшена работа с Delphi.
10.07.2009 IBProvider теперь поддерживает несколько способов передачи NULL.
04.07.2009 В новой версии IBProvider реализована эмуляция типов BOOLEAN и GUID при работе с Firebird и Interbase.
11.06.2009 В новой версии IBProvider добавлена возможность отмены выполнения команд, а так же поддерживается новый тип запросов Firebird 2.5 с SQL_NULL.
05.05.2009 Новые версии IBProvider - появилась возможность работать с типом TIME через MS SQL Linked Server, улучшена информативность сообщений об ошибках при работе с временными файлами.
17.04.2009 16 версий Firebird и Interbase теперь доступны для записи через MS SQL Linked Server на 64-битных платформах.
05.03.2009 В IBProvider v3 Release Candidate 4 улучшена поддержка Visual Studio 2008 DDEX, оптимизирована работа с именованными параметрами. Доступ к метаданными возможен в пользовательской кодировке.
16.02.2009 С новым IBProvider возможна полноценная работа в Unicode-приложениях, улучшена работа с кодировкой NONE, поддерживаются маркеры кодовых страниц.
12.01.2009 В IBProvider v3 разработан принципиально новый механизм работы с кодовыми страницами текстовых данных Firebird и Interbase.
06.11.2008 Новый IBProvider - поддержка 49 кодовых страниц, возможность работы без регистрации провайдера, предотвращение утечки памяти в Firebird клиенте.
03.10.2008 В новой версии IBProvider Professional Edition добавлено 7 кодовых страниц, исправлены ошибки, улучшен механизм работы с памятью и доступ к BLOB-полям
25.08.2008 6 мировая конференция по Firebird пройдет в Бергамо с 25 по 27 сентября 2008 года. Открыта регистрация
30.07.2008 Доступны новые версии IBProvider. Улучшена работа с NUMERIC-типами и с пулом подключений. В схемах метаданных добавлена поддержка внешних и временных таблиц. В 2,5 раза повышена производительность с отключенным кешем метаданных.
08.07.2008 Выпущен IBProvider Release Candidate 3. Поддержка аутентификации Windows для Firebird 2.1, поддержка длинных имен и Boolean типа для Interbase 7 и Interbase 2007, и т.д.
17.06.2008 Новые версии IBProvider. Поддержка бинарных данных и кодовой страницы OCTETS, 64 битные колонки в схемах метаданных, релиз конвертора типов.
12.05.2008 Доступны новые версии IBProvider. Полностью обновлен конвертор типов.
07.04.2008 Новый IBProvider v3 для 64 битных ОС.
11.03.2008 Новая версия IBProvider v.3.0 RC2 [buid 3965].
08.02.2008 Доступны новые версии IBProvider. Улучшена поддержка Visual Studio 2008, реализован новый механизм распределенных транзакций, исправлены ошибки и улучшена совместимость с различными серверами Firebird и Interbase.
26.12.2007 Изменились лицензии на IBProvider, а так же появилась возможность покупать IBProvider со скидкой.
08.11.2007 23 ноября 2007 года в Москве пройдет вторая российская конференция по Firebird и Interbase. Специальная акция для участников.
30.10.2007 Новая версия IBProvider Free Edition (3.0.0.3313 Release Candidate 2 [RC2]).
29.10.2007 Новая версия IBProvider v3 Release Candidate 2 (RC2).
18.10.2007 Новая версия IBProvider Professional Edition. Улучшена интеграция с Microsoft Office. Исправлены известные ошибки.
13.09.2007 Новые версии провайдеров в составе IBProvider Professional теперь могут работать в среде Microsoft SQL Server 2005 Business Intelligence Development Studio.
20.07.2007 Выпущены редакции IBProvider Professional Edition и IBProvider Free Edition поддерживающие Firebird 2.1.
25.05.2007 Возобновлена работа механизма скачиваний. Персональная доставка новых версий будет более оперативной.
27.04.2007 Новые редакции IBProvider Professional и IBProvider Free уже на сайте!
13.12.2006 Новая версия библиотеки классов C++ для работы с OLE DB-провайдерами. Реализована поддержка Unicode проектов.
04.12.2006 Опубликованы последние релизы: IBProvider Professional Edition - профессиональное решение для создания приложений баз данных для Interbase и Firebird. IBProvider Free Edition - обновленная бесплатная версия на базе третьей версии IBProvider
07.10.2006 Новые версии IBProvider 3.0.0.2385 [RC1] и IBProvider 2.5.0.2088 [Релиз]. Добавлены псевдонимы Charset, PSWD. Оптимизация чтения метаданных и парсера SQL запросов. Поддержка работы с массивами в ADO .Net.
28.08.2006 Новые версии провайдеров: IBProvider 3.0.0.2065 [Beta] и IBProvider 2.4.7.2034 [Релиз]. Улучшенная интеграция с MSSQL 2000/2005.
13.08.2006 IBProvider 3.0.0.1959 [Beta]. IBProvider 2.4.6.1989 [Релиз]. Библиотека классов С++ для работы с OLEDB провайдерами теперь поддерживает VC8 (VS2005).
25.05.2006 IBProvider 3.0.0.1324 [Beta]. IBProvider 2.4.5.1953 [Релиз]. Клиентская библиотека для C++.
05.05.2006 Изменение цены на IBProvider. Доступны новые демо версии
30.03.2006 IBProvider release v.2.4.4 (v.1.7.26) build 1885 now available. IBProvider v.3 [сборка 1107. бета]
27.02.2006 IBProvider v.1/v.2 [cборка 1877 Release Candidate 1]. IBProvider v.3 [сборка 1062. бета]
30.11.2005 IBProvider 2.4.3.1859. Релиз.
01.11.2005 Решение проблемы с арифметическими ошибками в .NET приложениях.
28.09.2005 IBProvider v3 [сборка 913] [beta version].
22.09.2005 IBProvider v3 [сборка 890] [beta version]. IBProvider v2/v1 [сборка 1811].
01.09.2005 Журнал для разработчиков под Interbase и Firebird.
28.07.2005 IBProvider v3 [сборка 789] [beta version]. IBProvider v2/v1 [сборка 1802].
15.06.2005 IBProvider v3 [сборка 779] [beta version]. IBProvider v2/v1 [сборка 1795].
12.04.2005 Открыт форум для пользователей IBProvider
22.03.2005 IBProvider 2.4.2.1772. Релиз.
28.02.2005 IBProvider 3.0.0.639 beta. Изменение корпоративной лицензии.
11.02.2005 IBProvider 3.0.0.573 beta.
24.12.2004 IBProvider 3.0.0.449 beta.
12.11.2004 IBProvider 2.4.1.1720/1.7.23.1720. Релиз.
31.05.2004 IBProvider 2.4.0.1607/1.7.22.1607. Релиз.
14.05.2004 Релиз кандидат 2.4.0.1588/1.7.22.1588
30.04.2004 Версия 2.3.3.1523 beta
29.03.2004 Версия 2.3.3.1416 beta
17.12.2003 Версия 2.3.3.1300
18.10.2003 Версия 2.3.2.1233
22.08.2003 Версия 2.3.1.1184
25.06.2003 Версия 2.3.0.1134 - расширена поддержка MS AS, MS SQL
23.04.2003 Версия 2.2.0.969 - поддержка диалога Data Links, локализация.
31.03.2003 Версия 2.1.2.
26.03.2003 Версия 2.1.1.
04.03.2003 Версия 2.1. Полностью переписан механизм обработки ошибок.
26.02.2003 Скидки на IBProvider.
18.02.2003 Изменение в сроках лицензии
23.01.2003 Версия 2.0.1.735. Исправление ошибок, оптимизация, HTML help
10.12.2002 IBProvider второго поколения
21.11.2002 Версия 1.7.11.584 и 1.8.0.584 beta
06.11.2002 Версия 1.7.10.542 и 1.8.0.542 beta
20.10.2002 Версия 1.7.9.481 и 1.8.0.481 beta
12.08.2002 Версия 1.7.6.350 и 1.8.0.350 beta
30.07.2002 Версия 1.7.5.311 - Исправление ошибок
10.07.2002 Версия 1.7.4.289
20.06.2002 Версия 1.7.3.269
30.05.2002 Версия 1.7.2.255
08.05.2002 Версия 1.7.1
22.04.2002 Версия 1.7.0.227. Поддержка UNICODE. Новые цены.
29.03.2002 Версия 1.6.3.213
28.02.2002 Версия 1.6.2.201
08.02.2002 Версия 1.6.2.199
19.01.2002 Версия 1.6.1.185
24.12.2001 Free Версия 1.5.2
13.12.2001 Версия 1.6
14.11.2001 1.5.1 - Смена компилятора. оптимизация. IColumnsRowset и другое ...
30.08.2001 IN-OUT параметры. массивы. ....
16.07.2001 Ошибка с проверкой подключения в Data Links
21.05.2001 Поддержка хранимых процедур
16.05.2001 Примеры на Delphi от Андрея Семака
14.05.2001 Последний штрих для RowSet
30.04.2001 Выпуск коммерческой версии
20.04.2001 Поддержка DTC и Пула ресурсов
04.04.2001 Поддержка строк. содержащих нулевые символы
16.03.2001 Реализация IOpenRowset::OpenRowset
15.03.2001 Поддержка DECIMAL и NUMERIC
12.03.2001 Исправление ошибок
01.03.2001 Устранены ошибки: специфические и не очень
03.01.2001 Реализация автоматического старта и подтверждения транзакции.
01.12.2000 Тотальная реконструкция IBProvider'а и его клиентской библиотеки.
15.09.2000 Создание версии для IB6. которую Вы увидите только 1 декабря 2000г.

Теги: Firebird, Firebird Delphi, Interbase Delphi, Скачать Firebird, Firebird ODBC driver, Interbase ODBC, Integration Services (SSIS), Firebird, Interbase и SQL Linked Server (MS SQL), Firebird .Net Provider, Visual Studio .Net 2008, (c#), Firebird 2.1, Firebird 2.0, Firebird 2, Firebird 64 bit, Interbase 64 bit, Interbase oledb provider, Interbase driver, Firebird ole db provider, Firebird driver


Назад Вперед