10 Steps To Analyze AWR Report in Oracle
10 Steps To Analyze AWR Report in Oracle
10 Steps To Analyze AWR Report in Oracle
1 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
2. Stick to Particular Time: "Database is performing slow" will not help anymore to resolve
performace issues. We have to have a specific time like Database was slow yesterday at 1 Pm and
continue till 4Pm. Here, DBA will get a report for these three hours.
3. Split Large AWR Report into Smaller Reports: Instead of having one report for
long time like one report for 4hrs. it's is better to have four reports each for one hour. This will help
to isolate the problem.
In case of RAC env. generate one report for each instance. Once, you have generated AWR report.
Now, it's time of analyze the report. Since, AWR report is a huge report and area to look into AWR
is also depends on problem to problem. Here, I am list most common area for a DBA to look into
which will give a clear picture of the issue.
2. Host Configuration:
This will give you name, platform CUP, socket and RAM etc. Important thing to notice is number
of cores into the system. In this example there are 12 CUP's in Cores.
4. Load Profile:
Here are few important stats for a DBA to look into. Fist is "DB CPU(s)" per second. Before that
let's understand how DB CUP's work. Suppose you have 12 cores into the system. So, per wall
clock second you have 12 seconds to work on CPU.
12/10/2015 0:43
2 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
let's understand how DB CUP's work. Suppose you have 12 cores into the system. So, per wall
clock second you have 12 seconds to work on CPU.
So, if "DB CPU(s)" per second in this report > cores in (Host Configuration (#2)).
means env is CPU bound and either need more CPU's or need to further check is this happening
all the time or just for a fraction of time. As per my experience there are very few cases, when
system is CPU bound.
In this case, machine has 12 cores and DB CPU(s) per second is 6.8. So, this is not a CPU
bound case.
Next stat to look at are Parses and Hard parses. If the ratio of hard parse to parse is high, this
means Database is performing more hard parse. So, needs to look at parameters like
cursor_sharing and application level for bind variables etc.
Here, first of all check for wait class if wait class is User I/O , System I/O, Others etc this could be
fine but if wait class has value "Concurrency" then there could be some serious problem. Next to
look at is Time (s) which show how many times DB was waiting in this class and then Avg Wait
(ms). If Time(s) are high but Avg Wait (ms) is low then you can ignore this. If both are high or Avg
Wait (ms) is high then this has to further investigate.
In the above screen shot, most of the resource are taken by DB CPU = 64% DB time. Taking
resource by DB CUP is a normal situation.
Let's take an example, In which event is "log file switch (checkpoint incomplete) " which has high
waits, huge Time (s) and large values in Avg Wait (ms) and wait class is configuration. So, here
you have to investigate and resolve log file switch (checkpoint incomplete).
Host CPU, Instance CPU and Memory Statistics are self explanatory. Next is RAC Statistics, I did
not find any issue in these stats most of the time.
12/10/2015 0:43
3 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
This report shows, system is 62 and 70% idle at time of report taken, So, there is no resource
crunch at system level. But if, you found very high busy, user or sys % and indeed this will led to
low idle %. Investigate what is causing this. OS Watcher is the tool which can help in this direction.
Next, very crucial part of AWR report for a DBA is SQL Statistics. Which has all sql query details
executed during report time interval.
We will explore few of them, To understand, how to analyzed these reports. Let's start with
In this report, look for query has low executions and high Elapsed time per Exec (s) and this
query could be a candidate for troubleshooting or optimizations. In above report, you can see first
query has maximum Elapsed time but no execution. So you have to investigate this.
In Important point, if executions is 0, it doesn't means query is not executing, this might be the case
when query was still executing and you took AWR report. That's why query completion was not
covered in Report.
From above
stat, look for queries using highest CPU Times, If a query shows executions 0, this doesn't means
query is not executing. It might be same case as in SQL queries ordered by Elapsed time. The
query is still executing and you have taken the snapshot.
However, There are so many other stats in AWR Report which a DBA needs to consider, I have
listed only ten of them but these are the most commonly used stats for any performance related
information.
Please share you view about this article, Does it helps you to understand, How to analyze AWR
Report.
You might also like:
Oracle Advanced Compression Licensing
Manual Upgrade Database from Oracle 10.2.0.4 to Oracle 11.2.0.2
What is OS Watcher Utility and How to use it for Database Troubleshooting ?
Linkwithin
12/10/2015 0:43
4 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
Profile
Performance Review
Website Developers
Free web design tutorials
45 comments:
Anonymous July 2, 2013 at 10:35 AM
Nice article, me also working in oracle side as a Tech Arch.
Keep n touch
Thanks
Vijay
Bangalore
vijay.7858@gmail.com
Reply
Replies
umesh sharma
Reply
Reply
umesh sharma
Thanks Feroz
Reply
12/10/2015 0:43
5 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
umesh sharma
Thanks friends.
Reply
Thanks friend.
Reply
Thanks friend.
Reply
Thanks dear.
Reply
Thanks Gaurav.
Reply
Thanks Dear.
Reply
12/10/2015 0:43
6 de 7
umesh sharma
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
Thanks Dear.
Reply
Welcome friend.
Reply
Reply
12/10/2015 0:43
7 de 7
http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-i...
As in real life, concurrency means to client wants to access to the same object
simultaneously. Lock is the solution but could be an issue, when it is not released or take
a lof of time to release the object....
Reply
12/10/2015 0:43