You Asked
(Jump to Tom's latest followup)
We are having extremely slow response times using the Microsoft .Net 1.1 Data
Provider for .Net classes. Is there a significant performance difference
between that and ODP.Net or is one better than the other?
Specs on database server......Oracle 9i Enterprise Edition Release 9.2.0.5.0 -
64 bit Production with the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
and we said...
I asked Mark Williams, the author of
http://www.amazon.com/exec/obidos/tg/detail/-/1590594258
Pro .NET Oracle Programming
to look at this and he said:
One question I would start with in a situation like this is, "Are you
sure you have truly isolated the performance issue(s) to the data
provider"? I often use SQL*Plus as a litmus test of sorts to verify that
the statements in and of themselves perform adequately or up to
expectation. If a statement is poorly constructed it will perform poorly
in either provider. There are other factors to consider as well: Are
these queries? Updates? Inserts? Simple heap-based tables? Working with
LOBs? Connection pooling? Using binds appropriately? etc...
Now, having said that, I would chose the Oracle Data Provider for .NET
over the Microsoft provider in virtually all cases. The one case where I
would use the Microsoft provider is if I was forced to use the 8i
client. The Oracle Data Provider for .NET works with the 9i Release 2
client and higher. The Microsoft provider does support the 8i client;
however, since 8i is now desupported that argument carries much less
weight and I would strongly suggest using the 9i or 10g client. Both
providers are built on top of the Oracle Call Interface (OCI) but their
respective implementation does have some slight differences.
There are a couple of reasons why I would chose the Oracle provider.
First and foremost is features offered. For example, you can easily
tweak the number of rows fetched during a database fetch operation using
the FetchSize and RowSize properties of the Oracle provider. The Oracle
provider also provides much better support for LOBs. Another feature
exposed by the Oracle provider is the ability to easily work with PL/SQL
Associative Arrays. I am big supporter of placing logic that deals with
the data in packaged procedures and functions so this is an important
feature for me that is missing from the Microsoft provider.
Another reason for using the Oracle provider is the Oracle and community
support available via the Oracle Technology Network discussion forums:
http://forums.oracle.com/forums/forum.jsp?forum=146
A final indirect reason why the Oracle provider is a good choice is the
Oracle Developer Tools for Visual Studio .NET, which can be found here:
http://www.oracle.com/technology/tech/dotnet/tools/index.html
This set of tools integrates with the Visual Studio .NET environment and
contains a great deal of features and wizard-driven options for working
with the database and designing and laying out forms, etc. It relies on
the Oracle provider and is also available free of charge.
I hope that helps and if there are any specific questions feel free to
let me know or visit the Oracle Data Provider for .NET forum listed
above.
|
Reviews |
|
|
What about thin .NET data provider?May 04, 2005 Reviewer: Sergei Agalakov from Calgary, AB, Canada
.NET is very similar to JAVA, the only real difference to me as a database guy
is that JAVA is a cross-platform solution and .NET is still MS Windows
proprietary staff (well, JDBC is also more feurure rich but I hope it is only
the question of time for .NET data provider).
I am looking on MONO project with some interest but the biggest drawback to me
is that Oracle currently has only MS Windows .NET data provider. With JDBC we
had a choice of thin JDBC (100% JAVA cross-platform) and JDBC-OCI providers
(platform specific).
I heard about DataDirect .NET connector that it is a thin .NET data provider for
Oracle but I would rather prefer Oracle's own thin .NET data provider.
Does Oracle have any plans about cross-platform .NET data provider? Is
DataDirect Oracle .NET connector faster than Oracle's own .NET provider?
Thank you!
RE: What about thin .NET data provider?May 04, 2005 Reviewer: Mark A. Williams from Indianapolis, IN USA
Hi Sergei,
> Is DataDirect Oracle .NET connector faster than Oracle's own .NET provider?
It would not be fair of me to directly answer that question since I have not
used the DataDirect provider. On the other hand, I have not experienced any
performance issues using the Oracle provider, and, thus, have had no real need
to search for more performance.
> Does Oracle have any plans about cross-platform .NET data provider?
Keep in mind that I am not speaking for Oracle, but I have not heard of any
plans in the near future to support ODP.NET under MONO. I have seen a deepend
integration with .NET under Windows in the Oracle Database 10g Release 2 which
is in beta currently.
When converting from the Microsoft provider, it is fairly painless in that many
of the namespaces, etc. are either the same or very similar.
Hope that helps somewhat,
Mark
DataDirect ProviderMay 04, 2005 Reviewer: Areader
> Is DataDirect Oracle .NET connector faster than Oracle's own .NET provider?
Don't know that (I haven't benchmarked), but it's really worth to have a look at
it. To my mind, it's just more "feature-rich" than ODP.NET (not to talk about
the MS provider). Though it's not for free, it's the one I'd use by default.
Regards,
Steve
|