You Asked
(
Jump to Tom's latest followup
)
and we said...
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
|
I asked Mark Williams, the author ofhttp://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 | |||
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!
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
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 |
ODP.Net versus Microsoft .Net 1.1 Data Provider for .Net", version 9.2.0