looking for advise on init.ora parameters

Posted on 2007-11-16
Last Modified: 2013-12-19
I have an 11i Oracle applications instance running on a single node server configuration.
The server has 4 CPU and 16 GB of RAM.
I observe that, when all users are working, my database access tends to slows down considerably (which seems quite normal), however the CPU level never goes more than 40%.
I understand that this is partly because of disk access and contention, but I also ask myself whether my SGA is not large enough.
I would like to have recommendations about the following 8i database parameters:
db_block_buffers (my db_block_size=8192)
Please note that:
1. I have 16GB RAM
2. About 30 users accessing Oracle Applications forms concurrently
3. 6 concurrent requests allowed to run concurrently
Thanks in advance for your advice.
Question by:brianvanschellebeck
  • 3
  • 2
LVL 11

Expert Comment

ID: 20304170
You don't tune an instance for using up a server, but for supporting an application system. Data you provide should be about your application, e.g. OLTP vs DSS, number of concurrent connections, how many of them are active at a time, number of tables and rows, and the MOST important thing: what is it that users do?

You HAVE to start from the SQL: look into the package DBMS_SUPPORT, get a tracefile with waits, run it through tkprof and look at the waits: you will realise if e.g. there's an index missing, or a table without fresh statistics... or even if you did need to tweak some parameters too! Everything I've said is in the freely available docs, but quite lengthy to explain here, please refer to
LVL 11

Expert Comment

ID: 20304202
Sorry, I forgot DBMS_SUPPORT is unavailable on 8i. You need to use alter session set sql_trace=true, or set event 10046 at level 8 if you want the waits -look at DBMS_SYSTEM for that one

Expert Comment

ID: 20305914
Also try this:

shared_pool =524288000 ----->500 mb
db_block_buffers=314572800------------->300 MB
sort_area_size = 52428800 ---------------->50 mb
shared_pool_reserved_size= 104857600---------------->100mb
java_pool_size=157286400------->150 mb

Really, you don't want a shared_pool_size of 1gb, in our big company, there is no database with shared_pool _size =1gb and we have several terabytes database, batch processing, cognos report going on too, a lot.
As Akenathon suggested also the creation of the indexes.  Create the indexes based on the "where clause' of your queries.
 In 9i we do set pga_aggregate_target =2g which helps with queries.

Good luck.
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

LVL 73

Accepted Solution

sdstuber earned 500 total points
ID: 20307597
Do you use java?  If not, then set java_pool_size to 0

Are you patched to
What optimizer are you using?  

As for the other parameters, I would wait before adjusting those.
Don't tune a "system" tune a "problem".

What exactly is it that is slow? Some process somewhere.
Is it a select/update/insert/delete?  If so, look at indexes as suggested above.

dbms_support DOES exist for 8i,  $ORACLE_HOME/rdbms/admin/dbmssupp.sql

Is it pl/sql?  Use the dbms_profiler package to see where your bottle necks are.

If it's multiple processes, that's fine too.  Pick one.  Whichever one is slowing your business down the most.  Not necessarily the biggest system drag, but the one that actually affects people the most.   Find that process and tune it.

Once you know what your system is trying to do,  then (and only then) does it make sense to adjust the system wide parameters.  Without knowing how much sorting you're doing,  how can you say what your sort_area_size should be.  Without knowing how much of the pool you're using,  how can that be adjusted.

If you're seeing a lot of contention, look for bind variable useage, or rather, the lack thereof.  Not using binds is a GREAT way to make your application UNscalable.

LVL 11

Expert Comment

ID: 20309832
sdstuber: Thanks for pointing out that 8i already had dbmssupp.sql, I always set the event so I don't even create the package, but it's definitely a less cryptic way of doing it :-)
LVL 73

Expert Comment

ID: 20310022
yeah, not everybody has dbms_support installed.   According to Oracle you're really not supposed to install it unless directed.  I never understood why that recommendation existed.

So I got in the habit of using the events too.

I really like it that 10g has dbms_monitor as a standard install.

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Note: You must have administrative privileges in order to configure lead or case queues. ( is a cloud-based customer relationship management (CRM) system. It is widely used around the world by sales and ma…
In our personal lives, we have well-designed consumer apps to delight us and make even the most complex transactions simple. Many enterprise applications, however, are a bit behind the times. For an enterprise app to be successful in today's tech wo…
This video explains at a high level with the mandatory Oracle Memory processes are as well as touching on some of the more common optional ones.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now