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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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.
Free NetCrunch network monitor licenses!

Only on Experts-Exchange: Sign-up for a free-trial and we'll send you your permanent license!

Here is what you get: 30 Nodes | Unlimited Sensors | No Time Restrictions | Absolutely FREE!

Act now. This offer ends July 14, 2017.

LVL 74

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 74

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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Note: You must have administrative privileges in order to create/edit Roles. ( (SFDC) is a cloud-based customer relationship management (CRM) system. It is a database most commonly used by sales and marke…
Let’s face it: one of the reasons your organization chose a SaaS solution (whether Microsoft Dynamics 365, Netsuite or SAP) is that it is subscription-based. The upkeep is done. Or so you think.
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 videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

691 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