English version Russian version

Performance of the new IBProvider increased by 4.5 times

In the new IBProvider version, we removed the cause of low performance of IBProvider builds compiled in Visual Studio.

Now these builds work several times faster in both single-threaded and multi-threaded applications.

According to the test results,
new IBProvider Professional v3
works 4.5 faster than the former versions.


Now you can see for yourself that the new IBProvider version is much more effective than previous ones..

The figure presents the diagram of the builds testing in our test system:


* X-direction is test time in seconds.
  • Red graph - the old version IBProvider v 3.0.0.7798.
  • Blue graph - the new version IBProvider v.3.0.0.7866.

The table contains performance results in complex OLE DB test:

Old IBProvider version ver. No compiler File name in distributive Total test time, in seconds
IBProvider 32 bit v.3.0.0.7798 BCB5 _IBProvider_v3_i.dll 118,7 sec.
IBProvider 32 bit VS2008 _IBProvider_v3_vc9_i.dll 439 sec.
IBProvider 64 bit VS2008 _IBProvider_v3_vc9_w64_i.dll 377,9 sec.
New IBProvider version
IBProvider 32 bit v.3.0.0.7866 BCB5 _IBProvider_v3_i.dll 115,4 sec.
IBProvider 32 bit VS2008 _IBProvider_v3_vc9_i.dll 99 sec.
IBProvider 64 bit Leader VS2008 _IBProvider_v3_vc9_w64_i.dll 85 sec.

Test system description:

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:Source codes are placed in "TestCode\ActiveX\IBP\oledb_test"
(Test mask is "cmd*")

We fixed the error related to the queries pool

Load-testing of IBProvider 3.0.0.7866 resulted in the identification and fixing of the error related to the queries pool. The error started to appear in IBProvider 3.0.0.7575. We recommend the owners of this version to upgrade it.

Error description:

In some extremely neglected cases with server performance ( Firebird 2.5 debug build was used), IBProvider used to hang up at obvious call of ADODB.Connection.Close.

New component LCPI.IBP.Samples.RowCursor - the faster substitute for ADODB.Recordset

IBProvider distribution kit now has the new component LCPI.IBP.Samples.RowCursor available both compiled and as source codes. This is a simplified counterpart of ADODB.Recordset component. However, it provides faster access to data due to the following features:

  • Instead of EOF/MoveNext, the component provides the unified Fetch method.
  • At each reference to Field.Value, ADODB.Recordset makes a query to OLEDB provider and doesn’t cache the obtained data, and RowCursor is able to download data from all entry fields and uses caching.
  • IDispatch::Invoke call has been optimized for basic methods. This makes script programs work faster.
  • IOpenRowset interface is used, which allows to perform SQL-queries via session object without creation of a command. This feature is supported only in IBProvider v3.

Peculiarities of the component operation:

  • ADODB-compatible, uses ADODB.Connection to connect to the database.
  • Supports all data types including BLOB, arrays, and binary types.
  • By now, only unidirectional data access has been implemented.

Comparative tests on VBScript (IDispatch interface is used) have shown that LCPI.IBP.Samples.RowCursor works up to 30% faster with some operations than ADODB.Recordset..

Source code of the component

The source code of LCPI.IBP.Samples.RowCursor is available in IBProvider distribution kit: (Samples\oledb\sample_com_object)

Examples of the component usage

The examples of the component usage can be found in IBProvider test system, which is included into the distribution kit :

  • 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

Changes in the distribution kit

Now IBProvider Professional distribution kit includes 2 new optimized dlls:

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

Instead of Free Borland C++ compiler, they are compiled with the new up-to-date compiler from Visual Studio 2008 SP1+. They substituted the following files:

  • _IBProvider.dll;
  • _IBProvider_v2.dll;

The new installer includes only optimized builds of IBProvider v1 and IBProvider v2:

  1. _IBProvider_v1_vc9_i.dll, _IBProvider_v2_vc9_i.dll, (Visual Studio 2008 SP1+ compiler);
  2. _IBProvider_v1_vc9_w64_i.dll è _IBProvider_v2_vc9_w64_i.dll (Visual Studio 2008 SP1+ compiler); registered during installation on a 64-bit platform.
  3. _IBProvider_i.dll, _IBProvider_v2_i.dll (Free Borland C++ compiler); Ðregistered by the installer..

Digg It Reddit Technorati Del.icio.us Google Bookmarks Slashdot StumbleUpon Yahoo MyWeb All

Publish date: 16-11-2009. Copyright: IBProvider. This material may be reproduced on other web sites, without written permission but link to http://www.ibprovider.com required. Printable version: Performance of the new IBProvider increased by 4.5 times

All IBProvider news:
14-02-2010 Be quick to get a free license for IBProvider Professional v.3.0.00.8628
18-01-2010 Today, on January 18, 2010, IBProvider celebrates its 10th anniversary. The grand banquet is preceded by the release of the latest IBProvider version with enhanced support of DDL and updatable rowsets.
15-12-2009 We have improved PROCEDURES scheme loaders to obtain the text of stored procedures in PROCEDURE_DEFINITION.
16-11-2009 Performance of the new IBProvider increased by 4.5 times
07-10-2009 IBProvider 3.0.0.7798. The work with large volumes of data was improved.
13-08-2009 New IBProvider 3.0.0.7575 with queries pool and enhanced working with Delphi.
10-07-2009 IBProvider now supports free ways of NULL-processing.
04-07-2009 New IBProvider version can emulate BOOLEAN and GUID types when working with Firebird and Interbase.
11-06-2009 New IBProvider version has the option of cancelling commands execution and supports the new type of Firebird 2.5 queries containing SQL_NULL.
05-05-2009 New IBProvider versions have the option of working with TIME type via MS SQL Linked Server and the enhanced self-descriptiveness of error messages when working with temporary files.
17-04-2009 16 versions of Firebird and Interbase are now available for recording on 64-bit platforms via MS SQL Linked Server.
05-03-2009 IBProvider v3 Release Candidate 4 with enhanced DDEX support and optimized working with nominated parameters. Metadata can now be accessed in user encoding.
16-02-2009 New IBProvider allows comprehensive work in Unicode applications, enhanced work with NONE encoding, and supports charset markers.
12-01-2009 The brand new mechanism has been developed in IBProvider v3 for working with Firebird and Interbase text data charsets.
06-11-2008 New IBProvider - support of 49 code pages, ability to work without provider registering, prevention of memory leaks in Firebird client.
03-10-2008 In the new edition of IBProvider Professional 7 codepages support was implemented, bugs were fixed, BLOB-fields access and memory management was improved
25-08-2008 The 6 world-wide Firebird Conference in Bergamo, Italy
30-07-2008 IBProvider updates are available. Operation with NUMERIC-types and connection pooling were improved. External and temporary tables support in metadata schemes was added. Disabled metadata cache mode performance was increased in 2.5 times.
08-07-2008 New IBProvider Release Candidate 3 is available. Support of the integrated Windows authentication (SSPI) for Firebird 2.1, Support of long names and BOOLEAN type in Interbase 7.x and Interbase 2007, etc.
17-06-2008 IBProvider releases have appeared. OCTETS character set support, data type converter release, 64 bits values in metadata schematics.
12-05-2008 IBProvider releases have appeared. New implementation of the data types converter.
07-04-2008 New IBProvider v3 for 64 bits operational systems.
11-03-2008 New build No 3965 of IBProvider v 3.0 RC2 has appeared.
08-02-2008 New IBProvider releases have appeared. Visual Studio 2008 support and DTC support were improved, known bugs were fixed and Firebird/Interbase compatibility was enhanced.
26-12-2007 We have changed the IBProvider license agreements and now give discounts.
08-11-2007 The second Russian Firebird and Interbase conference will take place in Moscow, November 23, 2007
30-10-2007 IBProvider Free Edition (3.0.0.3313 Release Candidate 2 [RC2]) has appeared.
29-10-2007 IBProvider v3 Release Candidate 2 (RC2) has appeared.
18-10-2007 New release of the IBProvider Professional Edition appears. We have improved Integration with Microsoft office and fixed known bugs.
13-09-2007 New providers versions in the Professional Edition now can be used with Microsoft SQL Server 2005 Business Intelligence Development Studio
20-07-2007 The latest editions of IBProvider Professional and IBProvider Free now support new features of Firebird 2.1
25-05-2007 Download engine now working. All customers will receive personal releases more quikly.
27-04-2007 The latest editions of IBProvider Professional and IBProvider Free are available for download.
13-12-2006 C++ client library for OLE DB-providers now support the Unicode project types (which based on unicode strings).
04-12-2006 New releases appear: IBProvider Professional Edition - is a professional developer kit for Interbase and Firebird. IBProvider Free Edition - is an absolutely free of charge and most powerful version based on the commercial core of IBProvider v3.
07-10-2006 IBProvider 3.0.0.2385 [RC1] and IBProvider 2.5.0.2088 [Release] now avaliable. New properties aliases: Charset, PSWD. Metadata reading algorithm and SQL parser was optimized. Supporting arrays in ADO .Net.
28-08-2006 IBProvider 3.0.0.2065 [Beta]. IBProvider 2.4.7.2034 [Release]. MSSQL 2000/2005 integration improvement.
13-08-2006 IBProvider 3.0.0.1959 [Beta]. IBProvider 2.4.6.1989 [Release]. Ñ++ library for OLEDB providers now support VC8 (VS2005)
25-05-2006 IBProvider 3.0.0.1324 [Beta]. IBProvider 2.4.5.1953 [Release]. Client Library for C++.
05-05-2006 IBProvider price will be changed after 23 may 2006. New demo versions are avalible
30-03-2006 IBProvider release v.2.4.4 (v.1.7.26) build 1885 now available. IBProvider v.3 [build 1107. beta]
27-02-2006 IBProvider v.1/v.2 [build 1877 Release Candidate 1]. IBProvider v.3 [build 1062. beta]
30-11-2005 IBProvider 2.4.3.1859. Release.
01-11-2005 Fix of problem with arithmetic errors in .NET applications.
28-09-2005 IBProvider v3 [build 913] [beta version].
22-09-2005 IBProvider v3 [build 890] [beta version]. IBProvider v2/v1 [build 1811].
01-09-2005 The InterBase and Firebird Developer Magazine.
28-07-2005 IBProvider v3 [build 789] [beta version]. IBProvider v2/v1 [build 1802].
15-06-2005 IBProvider v3 [build 779] [beta version]. IBProvider v2/v1 [build 1795].
12-04-2005 IBProvider User Forum is Open
22-03-2005 IBProvider 2.4.2.1772. Release.
28-02-2005 IBProvider 3.0.0.639 beta. Change of the corporate license.
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. Release.
31-05-2004 IBProvider 2.4.0.1607/1.7.22.1607. Release.
14-05-2004 Release Candidate 2.4.0.1588/1.7.22.1588
30-04-2004 Version 2.3.3.1523 beta
29-03-2004 Version 2.3.3.1416 beta
17-12-2003 Version 2.3.3.1300
18-10-2003 Version 2.3.2.1233
22-08-2003 Version 2.3.1.1184
25-06-2003 Version 2.3.0.1134 - extended support of MS AS, MS SQL
23-04-2003 Version 2.2.0.969 - Data Links dialog support, localization
31-03-2003 Version 2.1.2.
26-03-2003 Version 2.1.1.
04-03-2003 Version 2.1. The error processing mechanism is completely reconstructed.
26-02-2003 Discounts on IBProvider.
18-02-2003 Changes in License Terms
23-01-2003 Version 2.0.1.735. Bug fix, optimization, HTML help
10-12-2002 The second generation IBProvider
21-11-2002 Version 1.7.11.584 and 1.8.0.584 beta
06-11-2002 Version 1.7.10.542 and 1.8.0.542 beta
20-10-2002 Version 1.7.9.481 and 1.8.0.481 beta
12-08-2002 Version 1.7.6.350 and 1.8.0.350 beta
30-07-2002 Version 1.7.5.311 - Bugs fixing
10-07-2002 Version 1.7.4.289
20-06-2002 Version 1.7.3.269
30-05-2002 Version 1.7.2.255
08-05-2002 Version 1.7.1
22-04-2002 Version 1.7.0.227. Support of UNICODE. New prices.
29-03-2002 Version 1.6.3.213
28-02-2002 Version 1.6.2.201
08-02-2002 Version 1.6.2.199
19-01-2002 Version 1.6.1.185
24-12-2001 Free Version 1.5.2
13-12-2001 Version 1.6
14-11-2001 1.5.1 - Change of Compiler. Optimization. IColumnsRowset. etc.
30-08-2001 IN-OUT Parameters. Arrays. ....
16-07-2001 Error with test of connection in Data Links
21-05-2001 Support of stored procedure
16-05-2001 New samples on Delphi for MTS from Andrei Semak
14-05-2001 The final touches to RowSet
30-04-2001 Commercial release
20-04-2001 Support of DTC and Resource pooling
04-04-2001 Support of null-containing character arrays
16-03-2001 Implementaion of IOpenRowset::OpenRowset
15-03-2001 Support of DECIMAL and NUMERIC
12-03-2001 Errors correction...
01-03-2001 Fix bug in command prepare
03-01-2001 The main cardinal change is in accordance with implementation of operation auto-commit support.
01-12-2000 IBProvider and client library Reconstruction.
15-09-2000 New version of IBProvider for IB6.

Tags: Firebird , Firebird Delphi , Interbase Delphi , Firebird Download , 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


Prev Next