Solved

10g performance

Posted on 2009-04-07
5
398 Views
Last Modified: 2013-12-18
Hi.

I've almost the same problem with two clients.

In the first, the old server was changed for a new and stronger server, with high performance. When they to that, and also installed oracle, the oracle performance was worst than in the old server. I searched for the parms of old server, and saw that in the new, less memory was allocated to oracle. Then, I changed the parms to became equal. For a few days oracle works fine. But now, I've received a mail telling that the performance slow down again.

In the second client, same application, but a little different study case. They've changed 9i for 10g. It is in automatic memory management. Also in this case, now the performance is worst than in 9i. Analyzing OEM, I saw that oracle is having so much I/O operations. Some updates and inserts was taking a long time to be completed, using so much I/O resources. I know that this can be an development problem. But I have a remote connection scheduled with the client in a few hours, when I'll try to change automatic to manual management, increase block_buffers, shared, and max_size, stop and start oracle server to see if the problem will be resolved. How can an application work worst in 10g than in 9i?
But, in case that this not work... I'll be without any others ideas to solve this problem... someone can help me with some tips if the actions described above doesn't work??

Thanks in advance.
0
Comment
Question by:Thiago_corporative
  • 2
  • 2
5 Comments
 
LVL 47

Expert Comment

by:schwertner
ID: 24086990
Run the statististics. After that flush the shared pool to
force Oracle to recompile and reoptimize the execution plans.

If you run into
ORA-01882: timezone region %s not found
study
Doc ID:  467722.1   DBMS_SCHEDULER And Time Zones ( DST ) Explained.
CREATE OR REPLACE PROCEDURE compute_statistics IS

BEGIN 

   dbms_stats.gather_database_stats(cascade=>true);

END compute_statistics;

/
 
 

set serveroutput on

set linesize 10000

BEGIN

   DBMS_OUTPUT.enable(100000);   

   dbms_scheduler.create_job(

      job_name => 'weekly_stats'

     ,job_type => 'STORED_PROCEDURE'

     ,job_action => 'compute_statistics'

     ,start_date => TO_TIMESTAMP_TZ('2009/10/22 2:10:00.000000 +08:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')

     ,repeat_interval => 'FREQ=WEEKLY'

     ,enabled => TRUE

     ,comments => 'Computes statistics over tables and indexes.'

     );

     DBMS_OUTPUT.PUT_LINE('Job successfully created.');

EXCEPTION 

     WHEN OTHERS THEN

       DBMS_OUTPUT.PUT_LINE(substr(sqlerrm,1,200)); 

END;

/

Open in new window

0
 

Author Comment

by:Thiago_corporative
ID: 24087059
I did it last week... but didn't resolved.
0
 
LVL 40

Accepted Solution

by:
mrjoltcola earned 500 total points
ID: 24087500
Not knowing how Oracle is configured leaves a lot of possibilities.

Redo logs, archive, undo, index and table updates all contribute to IO.

If you are doing redo log mirroring, are they on separate disk, or at least are you using a decent raid? Even though you should have at least 1 mirror for each log group, every redo mirror is extra IO.

Is redo on separate disk from undo?

About 20 more questions I could ask, but really you need to analyze the database and find where the problems lie. And I don't mean "analyze" in terms of computing statistics, I mean looking at all of the instance stats and narrowing down on where it is spending time.
0
 
LVL 47

Expert Comment

by:schwertner
ID: 24087794
Depends also by the kind of the disk storage.
If it is RAID array then you will experience delay.

Also there analyzing tables and indexes is tricky.
Pay attention on
(cascade=>true)

This commonly is missed and causes that the indexes are not
analyzed.
Also the shared pool should be flushed to force new plans.

After increasing the
db_buffer_cache
and the shared_pool_cache
the DB should work significantly faster.
0
 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24097705
Was there a resolution you could share with us?
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
How to Create User-Defined Aggregates in Oracle Before we begin creating these things, what are user-defined aggregates?  They are a feature introduced in Oracle 9i that allows a developer to create his or her own functions like "SUM", "AVG", and…
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

747 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

10 Experts available now in Live!

Get 1:1 Help Now