different performance results in Oracle9i vs. MSSQL Server 2000 [message #136998] |
Mon, 12 September 2005 12:40 |
mitra fatolahi
Messages: 38 Registered: October 2002
|
Member |
|
|
Hello,
We have performed load test of our java application against both Oracle9i and MSSQL Server 2000 databases. The throughput we got against an Oracle9i environment was less than MSSQL Sever 2000. Both test environment machines were identical with exception of the type of the database.
I have been assigned to look into tuning Oracle9i so we could get at least the same performance as MSSQL Server 2000. My boss believes Oracle should and will perform better if we know how to tune the database. I am new to Oracle and already started reading Oracle9i Database Performance Tuning Guide and Reference. I learned using SQL_TRACE and TKPROF. But so far I have not found any thing in the TKPROF that would explain the performance issue.
What should I be looking for? Do I need to modify any particular parameter in any of the .int files? Any ideas will be appreciated.
Thank you,
Mitra
|
|
|
Re: different performance results in Oracle9i vs. MSSQL Server 2000 [message #137000 is a reply to message #136998] |
Mon, 12 September 2005 13:00 |
smartin
Messages: 1803 Registered: March 2005 Location: Jacksonville, Florida
|
Senior Member |
|
|
Any reason why you are using the old version of oracle instead of the current one?
Performance tuning is a big topic, probably with regards to any environment. I've found that there are no shortcuts; about the only thing that works is having an understanding of the architecture and concepts of how the environment (database) works.
For that, sounds like you are on the right track in reading the performance tuning guide (10g version is much better than 9i in my opinion). Also the concepts guide is a must read.
A couple common oracle errors that come to mind reading your description is doing row at a time processing. If possible, and it often is, use bulk / set processing. This means, for example, running a single sql statement rather than a program that processing a result set one row at a time. Oracle has lots of capabilities (like analytic functions) that make this possible in many situations.
Also make sure to use the tools that the database provides. This means not trying to write a single application that will run well on multiple databases, because it won't. Keep your data processing as close to the db as possible, meaning use sql and plsql in the db not in the application layer.
An excellent book, especially if you are just starting out, is Tom Kyt's new book which either just came out this week, or will be out next week. Expert oracle programming 9i and 10g. Will be a great book to get you started on the right track.
|
|
|
Re: different performance results in Oracle9i vs. MSSQL Server 2000 [message #137010 is a reply to message #137000] |
Mon, 12 September 2005 14:12 |
|
Mahesh Rajendran
Messages: 10708 Registered: March 2002 Location: oracleDocoVille
|
Senior Member Account Moderator |
|
|
SMartin wrote:
>>This means not trying to write a single application that will run well on multiple databases, because it won't.Keep your data processing as close to the db as possible, meaning use sql and plsql in the db not in the application layer.
That is a wise statment.
Oracle and MS-sqlserver are different products.
Both treat the data differently.
Both are depending on different technologies / methods / principles to fetch the data.
So definately you need to customize the application with respect to the database it will be run.
I can quote a number of products that are designed to run against many databases. I am working with one such financial application.
To my horror, all the referential constraints are dealt within the application ( so it is easy to 'plug' against any database technology) and NONE are defined in database. There are hundreds of flaws in this application , which could have been easily dealt with a little database design ( oracle oriented).
|
|
|