views:

178

answers:

7

I know that Oracle is a generally good database engine but I think it is too difficult in deployment for a .NET projects comparing with native Microsoft SQL server solutions.

(I needed to install both x32- and x64-bit client components and configure TNS names for both of them, plus install Distributed Transactions support for Oracle. Not saying that you need to register with Oracle in order to get those binaries.)

Still I've seen some .NET projects with Oracle.

What are the benefits in using Oracle over SQL Server? Any specific scenarios where it is the only choice?

Would you use Oracle for your .NET project?

+5  A: 

If you're purely talking the database component then there's no doubt that the core MS tools (VS, LINQ, etc.) are better geared to interoperate with the MS SQL stack, but frankly there's really no killer reason to choose between the two platforms beyond what is endemic to the customer site. You shouldn't introduce a new platform unless necessary; if the customer site is geared towards Oracle licensing/skillsets in operations then go Oracle; if it's geared towards MS SQL then go MS SQL. If you're talking BI tools that opens up a bigger can of worms, but bottom line try not to introduce new core technologies unless absolutely necessary.

Nissan Fan
+1  A: 

Pros & cons :

  • All of the MS SQL vs Oracle differences
  • .NET supports MS SQL natively vs needing a plugin for Oracle
  • Because .NET supports MS SQL natively, it is often faster and easier to get started
  • Using MS SQL and .NET together simplifies your environment by having a single brand, and you can call yourself a "Microsoft Shop"

We just switched here from MS SQL to MySQL, and really, the only differences we have are MS SQL vs MySQL datatypes, and various problems with the MySQL connector - it's not as perfect as MS SQL's so we saw many mysterious error messages starting out with it.

rlb.usa
You can get really fast drivers for Oracle. Unfortunately that means dealing with the 3rd party vendor DataDirect.
Jonathan Allen
There's a LOT more difference between SQL Server and MySQL - MySQL doesn't support custom errors, has very restricted view support (no materialized view support), no analytical/ranking/windowing functionality, no WITH (AKA CTE, AKA Subquery Factoring) clause. These are all things Oracle 9i+ has...
OMG Ponies
+3  A: 

I wouldn't use Oracle for a number of reasons.

  1. Installation is a pain the in ass.
  2. You need to edit global config files just to talk to the server.
  3. The management tools are so bad you have to buy a third-party IDE like Toad.
  4. Their version of SQL does strang things like turn empty string into Nulls.
  5. Without a dedicated admin to do the index tuning Oracle has incredibly bad performance. You can't just cheat and use the indexes recommended by the IDE like you can in SQL Server.

You'll notice that I haven't mentioned anything about .NET, these are just the problems I faced when dealing with it as an Oracle/Java tester about 5-6 years ago.

Jonathan Allen
+1 agree with all points, except that Toad is just as bad as everything else (and worse in some ways).
MusiGenesis
I can't say I've ever tried Toad, we didn't have the budget. In the end I was writing my own SQL IDE in VB just so I could function.
Jonathan Allen
+1, good points. Possibly SQL Developer would be fine if it wasn't so slow.
Regent
+7  A: 

I'll start with this: The choice of DB engine for performance makes no difference this side of billions of rows: it comes down to code quality and database design. With billions of rows, your storage/SAN/network/BCP planning is paramount.

From a general ease of deployment and support it would be SQL Server; there are no cons here.

gbn
A: 

I would go with Oracle if I am developing a large Enterprise level OLTP applications and the customer are more inclined towards using Oracle. Most of the Financial institutions I have worked with have been using Oracle as back-end traditionally as SQL was not considered good option for high-end enterprise scale applications before SQL Server 2005. SQL Server and .NET together simplifies your environment. But now SQL is also giving stiff competition to Oracle with all its new set of competing features. Additionaly, it offers very quick time to market solution, and is very simple to use, administer and deploy.

In clustering technology, I feel Oracle is slightly ahead.

prabhats.net
"SQL Server has no multi-version consistency model" - clearly, you've never used SQL since SQL Server 2005. It's had MVCC in the form of snapshot isolation since then.
codekaizen
I don't think that is true. I have two friends that worked for credit unions. One used SQL Server, the other DB2.
Jonathan Allen
This assessment was correct a decade ago, is full of factual mistakes in 2010.
AlexKuznetsov
Every criticism of SQL Server also applies to Sybase which is still widely used in banking. Your comments on locking also apply to DB2 UDB http://www.ibm.com/developerworks/data/library/techarticle/dm-0511bond/ Oracle's MVCC slows things down in heavy loads. I could go on, but generally you're speaking from ignorance
gbn
That's a cheeky edit to remove all the stuff we jumped on you about...
gbn
Yes and thanks to you all for your criticisms. I realized where all I was wrong and how sql server has grown since 2005, 2008 and made appropriate corrections to my answer.
prabhats.net
+2  A: 

I develop a complex WCF/SOA enterprise application that runs on Oracle as data tier. Oracle is our company standard and there is almost no chance in getting that changed. There are other non-.net applications on top of that DB. From a developer's perspective Oracle and .Net doesn't mix easily if you want to use latest .Net data access technology like LINQ ,Entity Framework, RIA services etc. Oracle has just now announced that it will support EF with first beta coming out only later this year. We hand code our DAL using ODP.Net and StoredProcedures and that feels tedious at this day and age.

I also don't like somethings about Oracle like a 32 character limit on table/SP names, names are all upper case by default. Also Oracle queries can sometimes require hints that only Oracle specialists know. Profiling is hard when compared to SQL Server profiler.

But from a performance point of view Oracle is top notch. In the hand of a skillful DBA it is highly customizable for performance and I would strongly advice to have a Oracle specialist in the dev team (separate from production DBAs). We never had any deadlocking issue that I keep on hearing on SQL Server and Oracle works fine with Cursors unlike SQL server.

As for install/support/backup the Dev team is not involved, we have DBAs, SAN storage engineers etc. to look after those infrastructural area. SO I can't say much.

Overall I would say that if you don't have a pre-existing dependency on Oracle choose SQL Server for .Net development.

Pratik
Very balanced answer. If you have the Oracle skills in your shop, leverage them
gbn
A: 

From a .NET perspective I don't think there are any benefits to Oracle. The integration with SQL Server is much better. But there could be some advantages to using an Oracle database but they are nothing to do with .NET really.

Craig