AWR Report SAN performance
Hi,
does anyone can tel me witch parameter in the AWR report(html) describe the performance of the SAN ?
Thanks *T
This discussion might be interesting for your question
AWR-Avg wait(ms) and the right storage platfom
Best regards
Mohamed Houri
www.hourim.wordpress.com
Similar Messages
-
Shared Pool Statistics - awr report -m 10.2.0.1
Hi,
I'm new to reading awr report and performance tuning.
I have the below in my statspack.
Do i need to increase my shared pool?
Any one can advise and explain "% Memory for SQL w/exec" and "% SQL with executions>1"
Shared Pool Statistics
Begin End
Memory Usage %: 95.78 97.71
% SQL with executions>1: 51.51 80.85
% Memory for SQL w/exec> 1: 67.88 82.46
thanks!user21123 wrote:
The sweet point for the shared pool Memory Usage % is at about ~70%-80% because of aging out. You are at ~90%. It would be advisable to increase the shared pool, but if you're using 10g SGA_TARGET and SGA_MAX_SIZE, then that might require increasing those parameters. It depends how your AWR report looks for the Buffer Cache.
What makes you think this ?
In an OLTP system you hope for 100% shareable SQL, and correct allocation for the other objects, which would lead to 100% usage. In realistic terms, you're likely to get a few percent (which is often the shared_pool_reserved) free because there's a constant turn-over of non-shareable SQL.
If you're always seeing 70% - 80%, then there are several scenraios that might explain the figure. One is that you've simply made shared pool a bit too big. At the opposite extreme you might be constantly flushing 20%-30% of the material from the shared pool because it has become so fragmented that you have to clear a lot of garbage to create a small amount of contiguous space.
The best guideline to follow is to check whether you appear to be losing a significant amount of time on libarary cache and shared pool latches, using up an undesirable amount of CPU on parse time, see lots of reloads (without corresponding invalidations) in v$librarycache.
Without further information, we really can't say how good or bad the situation is. In fact, it's possible that the information that +"50% of your SQL has been shared, 50% has been single use"+ is a possible indicator that the shared_pool_size is too small, and we are filling the excess space with garbage rather than keeping the garbage (and library cache search time) to a minimum.
I would be interested to hear the thinking behind your suggestion, though.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge." Stephen Hawking. -
AWR report generation and utilizing effectively
What are the best practices for generating and utilzing the AWR in oracle for performance tuning ?
I.e
Do we need to generate a baseline for comparison during the performance issues ?
What is the best time and best way to generate baseline AWR ?
Is there a automated way to compare a baseline report to a report during a performance issue?
your input is appreciated.ggworthy wrote:
What are the best practices for generating and utilzing the AWR in oracle for performance tuning ?
I.e
Do we need to generate a baseline for comparison during the performance issues ?
What is the best time and best way to generate baseline AWR ?
Is there a automated way to compare a baseline report to a report during a performance issue?post manual way you compare baseline report during performance issue. -
Need help in reviewing AWR report
Hello Friends,
I need some information on reviewing this AWR report. Can you please tell me if you see any red flags or out of the ordinary? I’m trying to look for some performance or blocking issue that may be causing a process to run for longer than expected time or eventually terminate without finishing.
C:\Users\SIDDHARTH\Documents\Desktop\awr_rpt_-wbprdsnap_193927_thru_193952.htm
I do appreciate your help.
Thank you,Hi Ehtiram,
Thanks for your suggestion.
I have enclosed SQL stat rpt. can you suggest me which SQL ID causing this issue.
Elapsed Time (s) CPU Time (s) Executions Elap per Exec (s) % Total DB Time SQL Id SQL Module SQL Text
24,349 1,734 8,057 3.02 4.19 8x7g7z2azkbwy java@lena015 (TNS V1-V3) SELECT ES.EMPSKD_ACT_START_TIM...
19,014 4,960 8,800,248 0.00 3.27 0yg00z7gwc8xv java@lena014 (TNS V1-V3) SELECT * FROM override o WHERE...
16,686 583 2 8343.24 2.87 9btt17d327kjw java@lena018 (TNS V1-V3) DELETE FROM so_results_detail ...
12,969 189 1 12969.05 2.23 2rtppqwfnvucj java@lena014 (TNS V1-V3) SELECT WRKS_WORK_DATE FROM J...
11,432 9,712 2,138 5.35 1.96 07rqh01v58fqa java@lena018 (TNS V1-V3) Select AMXAVS_ID from AMX_AVAI...
9,683 676 12 806.96 1.66 8036tzu5fvvhg java@lena018 (TNS V1-V3) DELETE FROM so_distrib_detail ...
8,812 3,079 18,765 0.47 1.51 0crxpb0xurc21 java@lena014 (TNS V1-V3) select (fd.fcast_calls + fd.fc...
5,716 4,381 82,132 0.07 0.98 50cdgbs67apxr java@lena014 (TNS V1-V3) SELECT PG.* FROM SO_SCHEDULE_G...
5,364 110 47,005 0.11 0.92 9df2twkpvsw5p java@lena014 (TNS V1-V3) SELECT USR.WBU_ID VUF_RCP_ID...
4,911 4,080 7,996 0.61 0.84 g4yxt4nsahm6t java@lena015 (TNS V1-V3) SELECT R.RDR_UDF1 AS sGrace, ...
Back to SQL Statistics
Back to Top
SQL ordered by CPU Time
Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
% Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
CPU Time (s) Elapsed Time (s) Executions CPU per Exec (s) % Total DB Time SQL Id SQL Module SQL Text
9,712 11,432 2,138 4.54 1.96 07rqh01v58fqa java@lena018 (TNS V1-V3) Select AMXAVS_ID from AMX_AVAI...
4,960 19,014 8,800,248 0.00 3.27 0yg00z7gwc8xv java@lena014 (TNS V1-V3) SELECT * FROM override o WHERE...
4,626 4,718 1,196,614 0.00 0.81 0drcwvhmn0cnj java@lena014 (TNS V1-V3) select SKDGRP_ID, VOLTYP_ID, ...
4,381 5,716 82,132 0.05 0.98 50cdgbs67apxr java@lena014 (TNS V1-V3) SELECT PG.* FROM SO_SCHEDULE_G...
4,080 4,911 7,996 0.51 0.84 g4yxt4nsahm6t java@lena015 (TNS V1-V3) SELECT R.RDR_UDF1 AS sGrace, ...
3,079 8,812 18,765 0.16 1.51 0crxpb0xurc21 java@lena014 (TNS V1-V3) select (fd.fcast_calls + fd.fc...
1,892 2,802 8,463,493 0.00 0.48 60tk6bna3qwbn java@lena014 (TNS V1-V3) SELECT /*+INDEX(OVERRIDE IDX_O...
1,734 24,349 8,057 0.22 4.19 8x7g7z2azkbwy java@lena015 (TNS V1-V3) SELECT ES.EMPSKD_ACT_START_TIM...
1,437 1,438 157,923 0.01 0.25 75wjn3dnjq2x3 java@lena014 (TNS V1-V3) SELECT * FROM CMPLNC_GROUP_FIL...
1,241 2,243 19,223 0.06 0.39 fjucxsh2xum7c java@lena014 (TNS V1-V3) SELECT emp.emp_id FROM employe...
676 9,683 12 56.31 1.66 8036tzu5fvvhg java@lena018 (TNS V1-V3) DELETE FROM so_distrib_detail ...
583 16,686 2 291.61 2.87 9btt17d327kjw java@lena018 (TNS V1-V3) DELETE FROM so_results_detail ...
189 12,969 1 189.14 2.23 2rtppqwfnvucj java@lena014 (TNS V1-V3) SELECT WRKS_WORK_DATE FROM J...
Back to SQL Statistics
Back to Top
SQL ordered by Gets
Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
Total Buffer Gets: 13,427,369,138
Captured SQL account for 60.3% of Total
Buffer Gets Executions Gets per Exec %Total CPU Time (s) Elapsed Time (s) SQL Id SQL Module SQL Text
3,403,579,267 2,138 1,591,945.40 25.35 9711.73 11431.76 07rqh01v58fqa java@lena018 (TNS V1-V3) Select AMXAVS_ID from AMX_AVAI...
1,070,482,359 1,196,614 894.59 7.97 4626.43 4718.30 0drcwvhmn0cnj java@lena014 (TNS V1-V3) select SKDGRP_ID, VOLTYP_ID, ...
421,090,926 18,765 22,440.23 3.14 3078.77 8812.06 0crxpb0xurc21 java@lena014 (TNS V1-V3) select (fd.fcast_calls + fd.fc...
322,602,711 8,800,248 36.66 2.40 4960.29 19013.56 0yg00z7gwc8xv java@lena014 (TNS V1-V3) SELECT * FROM override o WHERE...
287,681,734 19,223 14,965.50 2.14 1240.74 2243.16 fjucxsh2xum7c java@lena014 (TNS V1-V3) SELECT emp.emp_id FROM employe...
205,494,645 2,985,988 68.82 1.53 882.42 882.58 f736f78bg36fz java@lena014 (TNS V1-V3) SELECT WBT_ID FROM SO_EMPLOYEE...
189,266,051 114,985 1,646.01 1.41 703.31 710.28 4ca6cmu7vywx0 java@lena014 (TNS V1-V3) SELECT CG.* FROM SO_SCHEDULE_G...
180,050,736 2,478 72,659.70 1.34 840.37 3858.85 a13n3pt09jabr java@lena018 (TNS V1-V3) DELETE FROM AMX_AVAIL_SUMMARY ...
146,401,683 82,132 1,782.52 1.09 4381.09 5715.93 50cdgbs67apxr java@lena014 (TNS V1-V3) SELECT PG.* FROM SO_SCHEDULE_G...
133,298,999 60,547 2,201.58 0.99 515.19 802.26 cncd24nf9m6m6 java@lena014 (TNS V1-V3) SELECT SO.*, EMP.* FROM SO_EM...
Back to SQL Statistics
Back to Top
SQL ordered by Reads
Total Disk Reads: 161,056,185
Captured SQL account for 38.7% of Total
Physical Reads Executions Reads per Exec %Total CPU Time (s) Elapsed Time (s) SQL Id SQL Module SQL Text
16,051,442 2 8,025,721.00 9.97 583.23 16686.47 9btt17d327kjw java@lena018 (TNS V1-V3) DELETE FROM so_results_detail ...
14,313,828 12 1,192,819.00 8.89 675.73 9683.47 8036tzu5fvvhg java@lena018 (TNS V1-V3) DELETE FROM so_distrib_detail ...
4,589,031 8,057 569.57 2.85 1734.00 24349.00 8x7g7z2azkbwy java@lena015 (TNS V1-V3) SELECT ES.EMPSKD_ACT_START_TIM...
3,484,791 7 497,827.29 2.16 359.64 3188.47 6kn1bh485cgfm java@lena014 (TNS V1-V3) SELECT WRKS_WORK_DATE FROM J...
2,975,671 8,800,248 0.34 1.85 4960.29 19013.56 0yg00z7gwc8xv java@lena014 (TNS V1-V3) SELECT * FROM override o WHERE...
2,758,931 1 2,758,931.00 1.71 189.14 12969.05 2rtppqwfnvucj java@lena014 (TNS V1-V3) SELECT WRKS_WORK_DATE FROM J...
1,345,288 1 1,345,288.00 0.84 316.63 1319.96 cg19gczm0t1rq PYW121WA.exe select unique vctp.EMP...
1,321,391 0 0.82 302.93 1317.47 6dq9gfc26kmbt PYW121WA.exe select COUNT(*) from...
1,273,572 18,765 67.87 0.79 3078.77 8812.06 0crxpb0xurc21 java@lena014 (TNS V1-V3) select (fd.fcast_calls + fd.fc...
1,248,698 6 208,116.33 0.78 287.11 1297.41 250a6k8scn6d1 java@lena014 (TNS V1-V3) SELECT WRKS_WORK_DATE, EMPL...
Back to SQL Statistics
Back to Top
SQL ordered by Executions
Total Executions: 128,083,116
Captured SQL account for 51.0% of Total
Executions Rows Processed Rows per Exec CPU per Exec (s) Elap per Exec (s) SQL Id SQL Module SQL Text
8,800,248 4,896,274 0.56 0.00 0.00 0yg00z7gwc8xv java@lena014 (TNS V1-V3) SELECT * FROM override o WHERE...
8,463,493 2,096 0.00 0.00 0.00 60tk6bna3qwbn java@lena014 (TNS V1-V3) SELECT /*+INDEX(OVERRIDE IDX_O...
6,077,148 6,077,148 1.00 0.00 0.00 88vs2qyv0wrr7 java@lena018 (TNS V1-V3) SELECT SEQ_AMXAVS_ID.NEXTVAL F...
4,854,539 4,854,135 1.00 0.00 0.00 frdva1m6src9p java@lena014 (TNS V1-V3) select * from emp_def_lab wher...
4,520,588 4,840,522 1.07 0.00 0.00 1jgzwf0qkrmnv java@lena018 (TNS V1-V3) delete from "WORKBRAIN"."AMX_...
4,205,634 9,720,125 2.31 0.00 0.00 9gj46z0yfjbn6 java@lena014 (TNS V1-V3) SELECT * FROM so_posn_set_elmt...
3,834,278 3,834,039 1.00 0.00 0.00 gmgvzfk9nz404 java@lena014 (TNS V1-V3) SELECT ACT_ID, ACT_NAME, ACT...
2,985,988 2,674,478 0.90 0.00 0.00 f736f78bg36fz java@lena014 (TNS V1-V3) SELECT WBT_ID FROM SO_EMPLOYEE...
2,081,020 2,080,811 1.00 0.00 0.00 brnrwgx8c44zu java@lena014 (TNS V1-V3) SELECT tcode_udf8 FROM time_co...
1,779,779 2,531,807 1.42 0.00 0.00 fv9j5aanhvn35 java@lena014 (TNS V1-V3) select * from employee_team wh...
Back to SQL Statistics
Back to Top
SQL ordered by Parse Calls
Total Parse Calls: 42,958,894
Captured SQL account for 65.4% of Total
Parse Calls Executions % Total Parses SQL Id SQL Module SQL Text
6,077,150 6,077,148 14.15 88vs2qyv0wrr7 java@lena018 (TNS V1-V3) SELECT SEQ_AMXAVS_ID.NEXTVAL F...
4,205,421 4,205,634 9.79 9gj46z0yfjbn6 java@lena014 (TNS V1-V3) SELECT * FROM so_posn_set_elmt...
3,834,191 3,834,278 8.93 gmgvzfk9nz404 java@lena014 (TNS V1-V3) SELECT ACT_ID, ACT_NAME, ACT...
1,603,096 2,081,020 3.73 brnrwgx8c44zu java@lena014 (TNS V1-V3) SELECT tcode_udf8 FROM time_co...
982,185 982,187 2.29 4m7m0t6fjcs5x update seq$ set increment$=:2,...
902,759 906,293 2.10 6cvn595prdbtf java@lena014 (TNS V1-V3) SELECT wbt_id FROM employee_te...
821,077 1,779,779 1.91 fv9j5aanhvn35 java@lena014 (TNS V1-V3) select * from employee_team wh...
681,828 681,857 1.59 f0jjm3ky3kawn java@lena014 (TNS V1-V3) SELECT * FROM EMPLOYEE_BALANCE...
548,293 912,139 1.28 dmw686hrngaxf java@lena014 (TNS V1-V3) SELECT * FROM override WHERE o...
345,765 345,765 0.80 ftj9uawt4wwzb select condition from cdef$ wh...
Back to SQL Statistics
Back to Top
SQL ordered by Sharable Memory
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Version Count
Only Statements with Version Count greater than 20 are displayed
Version Count Executions SQL Id SQL Module SQL Text
163 38,796 ax51zndhagcxh java@lena018 (TNS V1-V3) UPDATE work_summary SET wr...
122 444 7pgr0hyg72xps java@lena014 (TNS V1-V3) INSERT INTO employee_schedule ...
100 42,367 3dg7u9t51sszw java@lena014 (TNS V1-V3) UPDATE employee_schedule SET ...
41 131,055 c1zdcc94svbpb java@lena014 (TNS V1-V3) UPDATE override SET EMP_ID =...
{code}
Thank you. -
How to generate AWR report by using ttStats?
Hi all,are there any links or documents to show how to use ttStats toolkit to generate a report like Oracle AWR report?
If no links or document available, could you tell me how to use it?
In fact I want to know how to do a performance analysis for my application and perform some tune.
If any other toolkits are more suitable please let me know and of course the guide that how to use them is much welcome.
Thanks.The ttStats executable can be found in the <TimesTen_home>/support directory. Before you can run the executable within a command prompt, you'll need to source the ttenv.* file in the <TimesTen_home>/bin directory.
The output of ttStats -h is as follows:
ttStats [-latchstats on|off] [-display-options] [-xml file]
[-statlevel level] <dsn or connstr>
ttStats -s[napshot] [-latchstats on|off] -xml <file> <dsn or connstr>
ttStats -report <xmlfile1> <xmlfile2> <-text|-html> <report_file>
Where parameters in <> are required, and in [] are optional.
-display-options:
This option only works in monitoring mode as
screen filtering. ttStats only displays on the
screen statistics with specified prefixes.
Available prefix options include:
-cg, -ckpt, -conn, -db, -grid, -lock, -log, -repl,
-stmt, -txn, -xla, -zz, where the naming of prefixes
conforms to naming of statistics in TimesTen
sys.systemstats table. If no display option
is specified, all statistics are displayed
by default. For example, run command
ttStats -cg -stmt dsn=TptbmData
to display only cache group and statement
related statistics.
-h[elp] Print help message and exit.
-interval <secs> Collect a set of statistics every <secs> seconds
(default=10).
Note: setting this lower can negatively impact
performance
-xml <file> Write statistics to <file> in XML format. All
statistics will be written to <file> no matter
whether they are displayed on screen or not.
For example ttStats -xml mon.xml dsn=TptbmData
and ttStats -xml mon.xml -cg dsn=TptbmData
write the same file even if the latter only
shows cache related statistics on the screen.
-snapshot One snapshot of all statistics are saved to disk
in the specified file format, then the program
exits. This option should be used together with
the -xml option.
-statlevel <level>
Set the SysStats level, this value of level only
applies to sys.systemstats table.
-report <xmlfile1> <xmlfile2> <-xml|-text|-html> <report_file>
Compare two snapshots, and generate an AWR like
report. At present, each XML file contains only
one snapshot. The difference is computed as the
absolute value of statistic value in <xmlfile2>
minus that in <xmlfile1>. The result can be
written in HTML and plain text formats. XML is
not supported as output format at present.
As an example, you can run the utility as the instance admin user by doing something like:
./ttStats -s -xml tmp.xml <DSN>
You can then open tmp.xml with a web browser and see statistics about the database.
You can also compare two previously captured snaps by doing something like:
./ttStats -report tmp1.xml tmp2.xml -html tmpReport.html -
User I/O and db file parallel read is high in AWR report
Hi,
We have one performance issue during a job execution.
From the awr report we have identified one query with a table having millions of records causing problems and then we had also fine tuned that query by changing it's code and by using the optmizer hints. It is being executed in plsql batches. After fine tuning, On the first batch execution(first 5000 records) the query is taking only 5 mins, but on the consecutive batches it is consuming more time( more than 30 mins).
From the awr report I got the statistics as
Release : 11.2.0.2.0
Instance Efficiency Percentages (Target 100%)
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 85.44 In-memory Sort %: 99.98
Library Hit %: 99.76 Soft Parse %: 99.15
Execute to Parse %: 88.91 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: 87.32 % Non-Parse CPU: 98.65
The buffer hit % is good. On each batch execution it is taking different set of records.
Top 5 Timed Foreground Events
Event Waits Time(s) Avg wait (ms) % DB time Wait Class
db file parallel read 120,485 42,540 353 89.60 User I/O
DB CPU 3,794 7.99
db file sequential read 145,074 606 4 1.28 User I/O
db file scattered read 70,030 556 8 1.17 User I/O
direct path write temp 12,423 21 2 0.04 User I/O
So the I/O is our main concern since that query contains one table with millions of records.
Host CPU (CPUs: 24 Cores: 24 Sockets: 4)
Load Average Begin Load Average End %User %System %WIO %Idle
1.40 1.45 0.6 0.3 3.7 99.0
Load is also normal.
From the Time model statistics , sql execute elapsed time is 98.27% of db time and only 7.99% is that of DB CPU.
Memory Statistics
Begin End
Host Mem (MB): 64,318.0 64,318.0
SGA use (MB): 30,720.0 30,720.0
PGA use (MB): 488.2 497.1
% Host Mem used for SGA+PGA: 48.52 48.54
Both the size of sga_max_size and sga_target are 32,212,254,720(32gb) bytes and that of
pga_aggregate target is 629,145,600(600mb)
from this it is evident that the memory is still available(so increase in memory size is not an option).
The sql statistics for that query shows like that
Elapsed Time (s) Executions Elapsed Time per Exec (s) %Total %CPU %IO SQL Id SQL Text
44,950.03 55 817.27 94.67 6.99 94.72 79dgmrxh4kv74 SELECT /*+ index(cdr_data cdr_...
I can't understand whether the problem is in the database side or with the query?
If the problem is with the query, then how it has been executed in 5 mins for the first batch ?
(all the batches are having 5000 records each).
And how can we reduce the db file parallel read ?
Your valuable advice will be greatly appreciated.
Thanks in advance
Manoj Kumar N"db file parallel read" is likely to be associated with something like index prefetching.
See:
http://www.freelists.org/post/oracle-l/RE-Calculating-LIOs,11
http://aprakash.wordpress.com/2012/05/29/index-range-scan-and-db-file-scattered-read-as-session-wait-event/
http://jonathanlewis.wordpress.com/2006/12/15/index-operations/
Tune the SQL.
Review the execution plan.
Check whether the statistics are accurate.
Review whether the index hint (and others that we can't see) is appropriate. -
Hi All,
Not very much experienced in performance tunning that why need your help, i generate AWR report for different times what to check, i started with top 5 events and trying to understand the portion of the report. Can anyone help me to understand the same
In case if AWR requires for the 3 snap shot i will provide the sameHi,
If you have a performance issue on your system look for causes of that performance issue in the AWR. eg. compare the awr report for the period with bad performance with that of a one taken when performance was good. AWR taken during bad time would have "things" that weren't in the awr taken when performance was good or have "high values" for some "things". Start from that point and drill down.
If you don't have performance issues then confirm everything is running as it shoud be. Compare several awr reports and there shoulnd't me "anything" out of the ordinary.
You can start with
Instance Efficiency Percentages (Target 100%)
Top 5 Timed Foreground Events
Time Model Statistics
There are no hard and fast rules as to how you go about interpreting an awr. It depends on type of problem you have, your system, your applicaiton, time of day etc.
http://www.dba-oracle.com/t_rac_statspack_awr_report_tips.htm -
Enq: TX - row lock contention in AWR reports
Dears,
One of my friends asked me to give him a help on analyzing a performance problem they are experimenting from time to time. First of all I am sorry to tell you that he didn’t gave me a lot of information. I will share with you all what I have been sent and would like to have your precious advice according to the available information.
It is a third party software installed on oracle data base 10.2.0.4.0. He said that from time to time the application hangs. He sends me an AWR reports supplied by the local DBA. Unfortunately, the local DBA send only the AWR information he thinks are most important to be looked at (he did not include the load profile and the instance efficiency Percentages part in this AWR for example).
Here below is the available information I can share with you
Snap time sessions cursors/session
Begin Snap 09-mars-11 08:00:03 31 6.5
End Snap 09-mars-11 08:39:49 41 9.8
Elapsed 39.77 (mins)
DB Time 536.65(mins)
Top 5 Timed Events
Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class
enq: TX - row lock contention 8,468 25,344 2,993 78.7 Application
read by other session 714,628 4,604 6 14.3 User I/O
db file sequential read 323,264 1,977 6 6.1 User I/O
CPU time 171 .5
db file scattered read 1,885 49 26 .2 User I/OThe AWR reports presents also the following SQL statement as the top SQL of its ‘’SQL ordered by Elapsed Time’’ part
UPDATE xxxx.table1
SET col1 = :1,
col2 = :2,
col3 = :3,
col4 = :4,
WHERE ID = :13
AND colx = :14;And the following sql at its “SQL ordered by Reads’ part
SELECT t1.*
FROM xxxx.table1 t1
LEFT OUTER JOIN xxxx.table2 t2
ON t1.id = t2.id
LEFT OUTER JOIN xxxx.table3 t3
ON t1.id = t3.id
LEFT OUTER JOIN xxxx.table4 t4
ON t1.id = t4.id
WHERE t1.col1 = :1
AND t1.col2 IN (:2,:3, :4);And finally in the Segments by Row Lock Waits part of the AWR I have this:
Owner tablespace name object name object type row lock waits %of capture
xxxx xxxx table1 TABLE 54 100 There are no bitmap indexes on this OLTP data base. There are no unindexed foreign keys and it seems that there are no selects done over a dblink.
I am waiting to have the table table1 script and its indexes
Given those information I think that the locking problem is due to this update on table table1 which is not followed immediately by a commit or a rollback. But, instead, several selects that might be taking a long time are done before reaching the commit that ends the lock on the table table1
What do you think about the possible reason of this lock?
Thanks in advance
Mohamed HouriDears,
I did get the suspected query and asked for its several explain plans thanks to the dbms_xplan.display_awr. The most important thing to point out is that the last where clause of this query seems to be dynamically filled-up
SELECT t1.*
FROM xxxx.table1 t1
LEFT OUTER JOIN xxxx.table2 t2
ON t1.id = t2.id
LEFT OUTER JOIN xxxx.table3 t3
ON t1.id = t3.id
LEFT OUTER JOIN xxxx.table4 t4
ON t1.id = t4.id
WHERE t1.col1 = :1
AND t1.col2 in (:2 , :3 , :4 , :5 , :6 , :7 , :8 )
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 14 (100)| |
| 1 | NESTED LOOPS OUTER | | 1 | 280 | 14 (0)| 00:00:01 |
| 2 | NESTED LOOPS OUTER | | 1 | 226 | 9 (0)| 00:00:01 |
| 3 | NESTED LOOPS OUTER | | 1 | 216 | 6 (0)| 00:00:01 |
| 4 | TABLE ACCESS BY INDEX ROWID| TABLE1 | 1 | 141 | 4 (0)| 00:00:01 |
| 5 | INDEX RANGE SCAN | SYS_C0010893 | 1 | | 3 (0)| 00:00:01 |
| 6 | TABLE ACCESS BY INDEX ROWID| TABLE2 | 1 | 75 | 2 (0)| 00:00:01 |
| 7 | INDEX UNIQUE SCAN | SYS_C0010774 | 1 | | 1 (0)| 00:00:01 |
| 8 | INDEX RANGE SCAN | SYS_C0010896 | 3 | 30 | 3 (0)| 00:00:01 |
| 9 | TABLE ACCESS BY INDEX ROWID | TABLE3 | 11 | 594 | 5 (0)| 00:00:01 |
| 10 | INDEX RANGE SCAN | SYS_C0010910 | 11 | | 3 (0)| 00:00:01 |
SELECT t1.*
FROM xxxx.table1 t1
LEFT OUTER JOIN xxxx.table2 t2
ON t1.id = t2.id
LEFT OUTER JOIN xxxx.table3 t3
ON t1.id = t3.id
LEFT OUTER JOIN xxxx.table4 t4
ON t1.id = t4.id
WHERE t1.col1 = :1
AND t1.col2 in (:2 , :3 , :4 , :5 , :6 , :7 , :8 , :9 , :10 , :11 , :12 , :13 , :14 , :15 , :16 ,
:17 , :18 , :19 , :20 , :21 , :22 , :23 , :24 , :25 , :26 , :27 , :28 , :29 , :30 , :31 , :32 ,
:33 , :34 , :35 , :36 , :37 , :38 , :39 , :40 , :41 , :42 , :43 , :44 , :45 , :46 , :47 , :48 ,
:251 , :252 , :253 , :254 , :255 , :256 , :257 ) ;
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 5943 (100)| |
| 1 | NESTED LOOPS OUTER | | 9210 | 2536K| 5943 (1)| 00:01:12 |
| 2 | NESTED LOOPS OUTER | | 885 | 195K| 1784 (0)| 00:00:22 |
| 3 | NESTED LOOPS OUTER | | 255 | 55080 | 1019 (0)| 00:00:13 |
| 4 | INLIST ITERATOR | | | | | |
| 5 | TABLE ACCESS BY INDEX ROWID| TABLE1 | 255 | 35955 | 509 (0)| 00:00:07 |
| 6 | INDEX UNIQUE SCAN | SYS_C0010893 | 255 | | 258 (0)| 00:00:04 |
| 7 | TABLE ACCESS BY INDEX ROWID | TABLE2 | 1 | 75 | 2 (0)| 00:00:01 |
| 8 | INDEX UNIQUE SCAN | SYS_C0010774 | 1 | | 1 (0)| 00:00:01 |
| 9 | INDEX RANGE SCAN | SYS_C0010896 | 3 | 30 | 3 (0)| 00:00:01 |
| 10 | TABLE ACCESS BY INDEX ROWID | TABLE3 | 10 | 560 | 5 (0)| 00:00:01 |
| 11 | INDEX RANGE SCAN | FK_TABLE3 | 10 | | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------- Suddenly there is an INLIST ITERATOR that pops up and which seems to be started 255 times and the ‘quick’ query which in normal situation (small in list) executes in less than 1 second starts now taking more than 1 minute to complete.
As far as it is a third party software, they can’t change the query.
Do you have any idea on how to solve this problem?
Here below are the optimizer parameters
SQL> show parameter optimizer
NAME TYPE VALUE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10.2.0.4
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUEThanks in advance
Mohamed Houri -
Automation of AWR report.
Hi All,
I want to automate for awr report generating for every 30 min. For this I am creating a script which is not working properly. Script given below.
1. Declaring an variable
2. Giving value to the variable by running sql query
3. Executing dbms_workload_repository procedure.
Please help me proper steps.
SET SERVEROUTPUT ON
Declare
DBID_NUM NUMBER;
INST_NUMBER NUMBER;
MAX_SNAP_ID NUMBER;
MIN_SNAP_ID NUMBER;
DBID_NUM := select DBID into DBID_NUM from dba_hist_snapshot WHERE ROWNUM=1;
INS_NUMBER := select INSTANCE_NUMBER into INST_NUMBER from dba_hist_snapshot WHERE ROWNUM=1;
MAX_SNAP_ID := select MAX(SNAP_ID) into MAX_SNAP_ID from dba_hist_snapshot;
MIN_SNAP_ID =: select MAX(SNAP_ID)-1 into MIN_SNAP_ID from dba_hist_snapshot;
Begin
SELECT output FROM TABLE (dbms_workload_repository.awr_report_html(DBID_NUM,INST_NUMBER,MAX_SNAP_ID,MIN_SNAP_ID));
End;
/Hi,
I am trying to help, however it's hard because you haven't clarified your end goal. What time period do you need to generate the AWR report for? Generating an AWR report from the entire range of available snap_id's is utterly useless. It's like measuring your average body temperature from the moment of birth up to now.
How are you planning to generate it -- into a database table, into a file, to terminal output? You didn't mention that and it's impossible to deduce it from your script.
Most importantly, why do you need to produce all these AWR reports for each 30 mins? Every 30 days, I would understand, but every 30 mins?! Do you realize that if you want to look at some trends, it much easier to do that using AWR views directly, rather than trying to extract data from html codes? And if you want your performance history just in case -- why don't you increase your SYSAUX tablespace and AWR retention, so that you can go back and generate a retrospective AWR report when needed?
I wrote an anonymous to autogenerate an AWR report for the last snapshot and dump it to the screen, hope this helps:
declare
l_dbid number;
l_inst_id number;
l_last_snap_id number;
l_output clob;
begin
select dbid into l_dbid from v$database;
select instance_number into l_inst_id from v$instance;
select max(snap_id) into l_last_snap_id from dba_hist_snapshot;
for rec in (select * from table(dbms_workload_repository.awr_report_text(l_dbid,l_inst_id, l_last_snap_id - 1, l_last_snap_id))) loop
dbms_output.put_line(rec.output);
end loop;
end;
/Best regards,
Nikolay
P.S. You have 17 out of 21 questions unresolved. Has the forum been really this unhelpful for you? -
Hi,
I have doubts in Report Summary scection in AWR report.Please anyone clear it.
1,What is W/A MB processed?
2,What is the difference between logons in load profile section and Sessions in snap info section?
Logons means connection which may one or more sessions.Is it right?
3,What is the difference between Block changes and Physcical writes in load profile section?
a,,Block changes means only datafile? or including Undo/Temp?
b,Physical writes:Number of physical writes performed.What does mean?
For Ex:
1,Emp table has 5000 rows on 50 blocks.
2,Insert into emp select * from emp;Then commit;
50 blocks changed Hence the value 50 added to Block changes.Is it right?
What about Physical writes?How the writes value calculated.Just assume 100 writes performed for this insert statment.
How is the value(100) cacluated?What basis?Is there any parameter influenced?like db_block_size .....If it's what are the parameters?
4,Execute to Parse %: Parse once execute many.
Softparse %:
Buffer Nowait %: 99.97 Redo NoWait %: 100.00
Buffer Hit %: 99.93 In-memory Sort %: 100.00
Library Hit %: 103.53 Soft Parse %: 94.67
Execute to Parse %: 100.00 Latch Hit %: 94.42
Parse CPU to Parse Elapsd %: 12.94 % Non-Parse CPU: 99.81
a,Soft Parse %: 94.67.So Remaining 5.23% is hard parse?
b,If Execute to Parse % is 70,What does mean of remaning 30%?(Same statement but differ in various reason like authentication or optimizer)Is it right?
c,How to relate Execute to Parse %: with Soft Parse %:?
d,How to relate Parse CPU to Parse Elapsd %: with % Non-Parse CPU:?
5,Shared Pool Statistics
Begin End
Memory Usage %: 26.26 25.90
% SQL with executions>1: 98.95 98.31
% Memory for SQL w/exec>1: 97.79 99.46
a,What does mean of Memory usage?26.26% memory used in allocated total SGA(if configured sga_target or memory_target).Is it right?
b,at does mean SQL with executions>1?How to/Where to realet with other parameter in AWR?
c,at does mean % Memory for SQL w/exec>1?How to/Where to realet with other parameter in AWR?
6,What does mean of Per exec, per call in load profile section for the attribute DB Time(s),DB CPU(s)?
7,What is Load average begin/end in host cpu section?How is the value calcuated?
8,What is %wio in in host cpu section?
9,What does mean %total cpu and %busy cpu in instance cpu?
10,what does mean Applied urec?
Br,
RajHi,
Thanks for your Reply..........
Now we use 11g only,Not 12c.
I read oracle 11g document already(few times).But i couldn't understand it.Hence,i posted here.
If anyone tell,it is a BIG release from headache.
Br,
Raj -
Updating AUD$ consumes most of the time in AWR report.
Hi All,
It's really good to see, great people passing their help to folks like us and making our life easier. Going forward,I am investigating on of the performance issue and analyzing the AWR report. By looking AWR, I did find updating aud$ taking most of times in AWR report. Following are the information , I extracted from the database and AWR report. Please see, what can be done to take away the bottlenecks.
Version -- 11.1.0.6.0
OS -- HPUXX Itanium
Event Waits Time(s) (ms) time Wait Class
enq: BF - allocation contentio 9,007 6,893 765 45.5 Other
DB CPU 2,565 16.9
db file scattered read 555,031 2,428 4 16.0 User I/O
read by other session 288,910 1,428 5 9.4 User I/O
PX Deq Credit: Session Stats 22,650 231 10 1.5 Other
209fr01svbb5s
wait % DB
Event Waits Time(s) (ms) time Wait Class
db file scattered read 291,023 1,973 7 61.6 User I/O
DB CPU 890 27.8
read by other session 81,495 340 4 10.6 User I/O
log file sync 1,210 21 17 .6 Commit
db file sequential read 30,452 15 0 .5 User I/O
Elapsed CPU Elap per % Total
Time (s) Time (s) Executions Exec (s) DB Time SQL Id
3,134 833 118 26.6 97.9 209fr01svbb5s
update sys.aud$ set action#=:2, returncode=:3, logoff$time=cast(SYS_EXTRACT_UTC(
systimestamp) as date), logoff$pread=:4, logoff$lread=:5, logoff$lwrite=:6, logo
ff$dead=:7, sessioncpu=:8 where sessionid=:1 and entryid=1 and action#=100
-------------------------- Plan from Cursor ---------------------------------------
SQL_ID 209fr01svbb5s, child number 0
update sys.aud$ set action#=:2, returncode=:3,
logoff$time=cast(SYS_EXTRACT_UTC(systimestamp) as date),
logoff$pread=:4, logoff$lread=:5, logoff$lwrite=:6, logoff$dead=:7,
sessioncpu=:8 where sessionid=:1 and entryid=1 and action#=100
Plan hash value: 1651467381
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | | | 2 (100)| |
| 1 | UPDATE | AUD$ | | | | |
|* 2 | TABLE ACCESS FULL| AUD$ | 1 | 139 | 2 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter(("ENTRYID"=1 AND "ACTION#"=100 AND "SESSIONID"=:1 AND
("SPARE2" IS NULL OR USERENV('ISDBA')='TRUE')))
++++ Last Anylzsed +++++
TABLE_NAME LAST_ANAL
AUD$ 08-NOV-07
++++++++ Table Size ++++++++++++++++++++++
SQL> select sum(bytes)/1024/1024 "Audit Size" from dba_segments where segment_name='AUD$';
Audit Size
2469RegardsBefore purging audit data I would suggest two things. First what is the time period for the report in question? If it is for a low usage period then the audit activity as a percentage of the overall load may be a bit distorted. It may also be worth checking to see what information the audit captured as you could have a contractual or legal obligation to capture the data.
Second and most import look to see what audit rules are in effect. By just removing a few unneeded rules such as auditing successful logins/logoffs or changing from by access to by session for specific objects you could potentially remove most of the activity being shown.
You may also want to check to see if a purge job has been set up. See dba_scheduler_jobs and Oracle proviced package: DBMS_AUDIT_MGMT.
HTH -- Mark D Powell -- -
'%Total Call Time ' in AWR report
Hi.
I have a quick question here,
For the awr report, the ‘Top 5 Timed Events’ section, does anybody knows how the ‘%Total Call Time ‘ is calculated for each event listed there?
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait Class
PX Deq Credit: send blkd 5,682,600 3,816 1 39.8 Other
db file scattered read 91,236 1,681 18 17.5 User I/O
CPU time 1,347 14.0
log file sync 99,426 752 8 7.8 Commit
log file parallel write 97,921 523 5 5.4 System I/O
Thanks,
Lei922884 wrote:
Hi,
Db version is 10.2.0.4.0
What is meaning of waits and % Total Call Time in Top 5 Timed Events in AWR report? Waits is the number of times a session waited on a particular call
% Total Call Time is the total time spent in this event divided by the db time, converted to a percentage.
It gives you some idea of how signifcant this event was in the total time spent waiting by the user. Unfortunately the SQLNet times are excluded in the calculations, so there is a component of time that (from the end-users' perspective) is lost.
How to read AWR report?Where i have to start from it?
The best place to start is probably still the white paper about statspack produced by Oracle 11 years ago: http://www.oracle.com/technetwork/database/focus-areas/performance/statspack-opm4-134117.pdf
How the values are calculated in awr? For example db time is 556.15 and elapsed time is 1,439.73 .
elapsed time is the clock time between the start and end time of the snapshots, reportedin in minutes - in your case your report covers 24 hours which is generally far too long to be useful.
db time is the time your sessions were active "inside" the database - again in minutes - and it's a measure of how much time you spent working. It is the sum of wait time and CPU time.
Regards
Jonathan Lewis -
SGA Sizing + OEM Issue+AWR reports
Hi Techies,
There is small application(Billing Application) running on Laptop. (Windows Vista 32 bit , RDBMS 10.2.0.3.0.)
1- We have increased the SGA_MAX_SIZE. Thought of Increase 700 M. Once we did the changes it has taken effect as 702 MB Allocated to SGA_MAX_SIZE. The same thing happened, while changing the SGA_TARGET Parameter.(After changed the parameter, it has added up 2MB extra).May I know the reason why the 2MB has added while changing the parameter.
2- OEM is not working , When it prompting for the Host User name and password, it won't accept the username and passowrd which I am used to Login into the Laptop.
3- After the generated the AWR reports, how to approach the finding , though it has many more data . Please help
Thanks,
TippuHi
If you're looking to performance tune your database, run the AWR report - preferably starting and ending at snapshots during which times there was a fair amount of activity, then post the section 'Top 5 Timed Events' here and I will point you in the right direction :-)
If OEM is still not working, you can manually take snapshots and generate AWR reports from sqlplus.
Take a manual snapshot:
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
END;
Produce an AWR report:
@?/rdbms/admin/awrrpt.sql
Cheers,
Andreas -
Identify high workload from awr report
Hi All,
Yesterday, our well-tuned the batch ran very slowly. Most of jobs ran for 30 mins that usually cost 15-20mins. And the colletion of statistics took much longer than before.
After reading the awr report, I noticed that all top SQLs didn't belong to our batch. Most of them are MV refreshing and bitmap index building.
So I think it is this unexpected high workload who is the culprit of the bad performance. But I want to know which section of awr report can show this or let management accept it?
Best regards,
LeonHI,
And I noticed the CPU section in awr looks like:
Host CPU (CPUs: 24 Cores: 12 Sockets: 6)
Load Average Begin Load Average End %User %System %WIO %Idle
1.07 2.22 73.4 8.8 0.9 17.8
Instance CPU
%Total CPU %Busy CPU %DB time waiting for CPU (Resource Manager)
67.9 82.7 0.0 It seems that CPU is not 100% busy. So can I say the workload is not CPU-bound?
My RAC is 11.1 and have 4 nodes. But the service I used for my batch just contains two nodes.
In light of this, does the CPUs:24 here mean the total CPUs for all 4 nodes or the CPUs for this service (2 nodes)?
Best regards,
Leon -
Hi!
So, how should I increase it now? I couldn't follow.
Could someone guide?
Warning: pga_aggregate_target was set too low for current workload, as this
value was exceeded during this interval. Use the PGA Advisory view
to help identify a different value for pga_aggregate_target.
PGA Aggr Target Stats DB/Inst: test/test Snaps: 6220-6221
-> B: Begin snap E: End snap (rows dentified with B or E contain data
which is absolute i.e. not diffed over the interval)
-> Auto PGA Target - actual workarea memory target
-> W/A PGA Used - amount of memory used for all Workareas (manual + auto)
-> %PGA W/A Mem - percentage of PGA memory allocated to workareas
-> %Auto W/A Mem - percentage of workarea memory controlled by Auto Mem Mgmt
-> %Man W/A Mem - percentage of workarea memory under manual control
%PGA %Auto %Man
PGA Aggr Auto PGA PGA Mem W/A PGA W/A W/A W/A Global Mem
Target(M) Target(M) Alloc(M) Used(M) Mem Mem Mem Bound(K)
B 54 4 80.3 0.0 .0 .0 .0 4,096
E 54 4 80.5 0.3 .4 100.0 .0 2,113
-------------------------------------------------------------Thanks a ton in advance.Thanks
I did that but still no improvement in the performance
I noticed this on the screen after running the awr report
SGA breakdown difference DB/Inst: Test/test Snaps: 6221-6222
-> ordered by Pool, Name
-> N/A value for Begin MB or End MB indicates the size of that Pool/Name was
insignificant, or zero in that snapshot
Pool Name Begin MB End MB % Diff
java free memory 24.0 24.0 0.00
shared ASH buffers 8.0 8.0 0.00
shared CCursor 14.7 14.0 -5.18
shared Heap0: KGL 4.2 3.6 -12.21
shared KCB Table Scan Buffer 3.8 3.8 0.00
shared KGLS heap 9.8 7.4 -24.41
shared KQR M PO 2.9 2.2 -25.67
shared KSFD SGA I/O b 3.8 3.8 0.00
shared PCursor 5.5 5.1 -7.07
shared PL/SQL MPCODE 4.2 4.9 16.34
shared free memory 16.8 21.5 27.41
shared library cache 8.5 8.4 -0.65
shared row cache 3.6 3.6 0.00
shared sql area 75.0 75.9 1.17
shared sql area:PLSQL 2.9 2.9 -0.67
buffer_cache 48.0 48.0 0.00
fixed_sga 1.2 1.2 0.00
log_buffer 2.8 2.8 0.00Does the negative values show something which is not right?
Please advice
Maybe you are looking for
-
Two ipod users on one computer
Does anyone have any info on how to set up different iTunes for two different users? My wife and I both now have nanos, and very different tastes in music. How best to handle? Two different iTunes on one computer? Thoughts?
-
Complete My Album - My download doesn't qualify?
I did the typical download one track to confirm its what I wanted, then got the whole album. I know it was last week, but iTunes says I'm not getting my $.99 credit? Its less than a dollar, but they just rolled out the program?!?
-
I bought the first season of Doctor Who. When I try to watch the episode, "The Unquiet Dead", it freezes with about 10 minutes left. I can not start it from any other point once it freezes. I was wondering if there is anyway to fix this.
-
SQL2005 is keeping temp table after succesfull dimension processing
When processing dimensions, I notice that on SQL there are tmp tables that do not get deleted. These tables have a different owner (not dbo but the installation user of BPC, with the domain prefix) Any idea why these temp tables are there? Example of
-
Right Clicking With Mighty Mouse
How would i go about right clicking?