Re: Data Provider for Oracle: MS version vs. Oracle?
- From: MrSmersh <MrSmersh@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 23 Nov 2006 04:28:02 -0800
Ok so let’s call it tie :), because we had such different experiences, and
both are so convinced by the validity of the results.
About swapping the database abstraction layer we use make it very simple,
just modify one value in the configuration file and you are done. Even can
try to use the native one and if is not available use the Microsoft one. And
of course that takes care of data type mapping, the data reader will give the
“good values”.
The most comprehensive test on this issue we have done with Oracle 9i and
with the 1.1 versions of the providers. We have tried with the “other
versions” but not so thoroughly, the difference seemed to be there… And the
database abstraction layer is not to blame, or who knows, maybe a different
programming approach, specific for each of the provider will give better
performance.
"Frans Bouma [C# MVP]" wrote:
MrSmersh wrote:.
I do stand by what I said (but if I’m wrong I leaned something).
that's great but my experiences are different. Also, it's not easy to
swap providers, because of the NUMBER(x, y) -> .NET type mappings which
differ alot between ODP.NET and MS' oracle provider.
Of what version of Oracle are we talking?
that doesnt' matter.
I do suppose that are we talking about .Net 2.0 providers.
that also doesn't matter in this case.
FB
"Frans Bouma [C# MVP]" wrote:
Marina Levit [MVP] wrote:
Anyone have experience with the provider from Microsoft vs. the
one from Oracle? I haven't looked very much at either.
One would assume that the one written by Oracle itself should
perform better, since they should be able to optimize it?
MS' version doesn't support the XML type, it always returns any
NUMBER(x,y) as decimal and doesn't have some of the fancy features
ODP.NET supports. There are also minor issues with varchar fields:
you can't save a UNICODE encoded string in a varchar field, because
when you set the parameter's OracleType to VarChar, it will result
into using DbType.AnsiString under the hood, allowing only
non-unicoded strings. This is of course to support 8i, but when
you're using 9i or higher this sucks bigtime if you need to store
unicoded strings.
ODP.NET and MS' provider are on par with performance, as both rely
on the Oracle CLI (client interface). You have to install the
client no matter what, so with MS' provider you've to install the
client separately, with ODP.NET you get the client installed.
I'd pick ODP.NET without any hesitation. Not only does it support
more features but you can say what you want about Oracle, they DO
release bugfixes from time to time, while Microsoft is very slow to
release bugfixes (service packs for .net framework).
--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
- Follow-Ups:
- Re: Data Provider for Oracle: MS version vs. Oracle?
- From: Frans Bouma [C# MVP]
- Re: Data Provider for Oracle: MS version vs. Oracle?
- References:
- Data Provider for Oracle: MS version vs. Oracle?
- From: Marina Levit [MVP]
- Re: Data Provider for Oracle: MS version vs. Oracle?
- From: Frans Bouma [C# MVP]
- Re: Data Provider for Oracle: MS version vs. Oracle?
- From: Frans Bouma [C# MVP]
- Data Provider for Oracle: MS version vs. Oracle?
- Prev by Date: Re: Data Provider for Oracle: MS version vs. Oracle?
- Next by Date: Re: Data Provider for Oracle: MS version vs. Oracle?
- Previous by thread: Re: Data Provider for Oracle: MS version vs. Oracle?
- Next by thread: Re: Data Provider for Oracle: MS version vs. Oracle?
- Index(es):
Relevant Pages
|