RE: IBM .net Driver for Informix vs MSSQL .net driver
Posted in 2005
Would the OleDb provider prove to be any better/faster
at this time than the .Net provider?
--- Jose da Fonseca <jose@lads.co.za> wrote:
> This is IBM's response : ( Unacceptable by the way )
>
> Subject: IBM Informix case#439472 -"Performance is
> slow. Select on blob,
> inserts on blob"
>
> Dear John,
> I am the new case owner of IBM Informix case#439472
> -"Performance is
> slow.
> Select on blob, inserts on blob"
>
> We currently have a feature #171522 "IBM INFORMIX
> NEEDS TO HAVE A FULLY
> MANAGED .NET PROVIDER" open which matches your
> problem. Please see the
> details below:
>
> >>
> One of the areas where the .Net application
> experience higher
> performance
> concerns is while it makes interoperation of managed
> and unmanaged code.
>
> The problem with mixing managed and unmanaged code
> in an application is
> that the unmanaged or native code doesn't recognized
> in the .NET
> environment. Managed code components not only depend
> on the classes
> available in the .NET Framework, they also expect
> the other components
> with
> which they interact to depend on that framework as
> well.
>
> Even the most trivial calls into native code must
> undergo a mode
> transition. The mode transition, which is the
> physical process of moving
> data between the managed and unmanaged modes of
> operation. Typically it
> requires about two dozens of instructions. The
> other cost involved in
> the
> process is marshalling the data to move across the
> boundary.
>
> Marshalling is necessary because the internal
> representation of data
> structures is different between managed and
> unmanaged code. To pass data
> across the boundary, it has to change the data from
> the .NET
> representation
> to the native one, and then back again. Marshalling
> is process
> expensive
> and the more data it move back and forth, the more
> expensive it becomes.
> Marshalling data structures one way can add as much
> as 3,000
> instructions
> to the processing time for complex data.
>
> Since we are dealing with a database driver and it
> does massive data
> movement, it must be undergoing enormous overhead
> that could have
> avoided
> having a fully managed .NET provider.
>
> A .NET application that mixing managed and unmanaged
> code could degrade
> its
> performance almost 5 to 10 times. Especially when
> it is dealing with
> lots
> of data exchange between the boundary,
> the performance degradation figure will be at the
> higher end.
> <<
>
> The Informix R&D group is in the initial phases of
> developing a plan to
> implement a fully managed .NET provider.
> Currently, the plan is to
> provide a fully managed provider on the .NET 2.0
> Framework which is
> supposed to be released by Microsoft later part of
> this year. R&D hopes
> that they will have a release with the fully managed
> provider about 3
> months later, give or take. This would therefore be
> at around Feb/March
> 2006
>
> At this point, we know that "some things" can be
> done faster with the
> ODBC
> bridge than our .net provider, but until we develop
> a new provider,
> there
> is little we can do about it.
>
>
> -----Original Message-----
> From: owner-informix-list@iiug.org
> [mailto:owner-informix-list@iiug.org]
> On Behalf Of Art S. Kagel
> Sent: Thursday, September 22, 2005 5:43 PM
> To: informix-list@iiug.org
> Subject: Re: IBM .net Driver for Informix vs MSSQL
> .net driver
>
> Jose da Fonseca wrote:
>
> Have you opened a case with tech support? Likely
> they have seen this
> problem with .net performance and may have a work
> around or
> recommendation
> for a better .net provider!
>
> Art S. Kagel
>
> > HI All,
> >
> > Has anybody had any experience with porting from
> MSSQL to Informix?
> We
> > are have successfully ported the data from MSSQL
> to Informix ids 10
> (two
> > attempts - data types were a bummer).
> >
> > We are now finding performance issues when reading
> the same data from
> > the Informix database. I am not sure what
> Microsoft have done in there
> > driver but the getting of data from Informix
> whether ODBC or .net
> driver
> > is credibly slow.
> >
> > This is what I have seen.
> >
> > Doing a select statement through dbaccess matches
> speed of doing same
> > query on through enterprise manager on MSSQL.
> >
> > The moment you do the same query through vb.net we
> see the following:
> >
> > We have set the fetchbuffersize to max +- 32767 .
> >
> > On single record return selects , no visible
> difference.
> >
> > (select returns 1 column of varchar (200,0)
> average bytes per row 20)
> > (select suburbname from area )
> >
> >
> >
> > On select that returns +- 11768 rows : vb from
> same machine to mssql
> db
> > on in intel 4 processor server 2003 machine <
> 1second
> >
> >
> Vb from same
> > machine to IDS 10 on pa risc 8 way hp-ux server 8
> seconds
> >
> > On select that returns +- 60000 rows : vb from
> same machine to mssql
> db
> > on in intel 4 processor server 2003 machine <
> 1second
> >
> >
> Vb from same
> > machine to IDS 10 on pa risc 8 way hp-ux server 8
> seconds
> >
> >
> >
> > On a more complex select statement : Multiple
> table joins with nested
> > loops.
> >
> >
> >
> > MSSQL from vb.net - 60000 rows returned - 1 minute
> 13 seconds
> >
> > Informix from vb.net - 60000 rows returned (after
> optimizing the sql
>
=== message truncated ===
sending to informix-list