What's operation can cause these wait event?
Hi all,
what's operation can cause "library cache lock" and "library cache pin"?
So surely you went first to the [url http://docs.oracle.com/cd/E11882_01/server.112/e16638/instance_tune.htm#PFGRF94529]documentation. Right?
Similar Messages
-
What is ges reusing os pid wait event
What is wait event "ges reusing os pid". In our RAC environment it is one of the top wait events. How to minimze it.
This is a wait event in Oracle 10g for Global Enqueue Services (ges) waiting on an operating system process id (os pid).
How to resolve this issue? I checked the bug list on Metalink and there is a patch set for the issue that may help.
Question: what version and patch release are you running for Oracle RAC?
Also, you probably want to tune your public network and private interconnects between the nodes in your Oracle RAC cluster.
Regards,
Ben Prusinski
http://oracle-magician.blogspot.com/ -
What is "ges enter server mode" wait event..
I cannot find 'ges enter server mode' wait event definition.
What is it?10g onwards, Instance recovery is done in two phases. First phase scans the blocks to be recoverd and applied from rdo log files and the second phase actually does that.
In a RAC instance the during the instance recovery, first pass scan can be delayed by 300ms-1.5s waiting on GRD (Global resource directory). During that time SMAON enters the wait event which is called "ges enter server mode" . -
My wait events - can anyone see a problem?
hi,
this is what i have, can anyone see a problem?
thanks
EVENT TOTAL_WAITS PCT_WAITS TIME_WAIT_SEC PCT_TIME_WAITED TOTAL_TIMEOUTS PCT_TIMEOUTS AVERAGE_WAIT_SEC
Streams AQ: qmn slave idle wait 148147 .3 4051461.88 38.04 3478 .07 27.35
Streams AQ: qmn coordinator idle wa 291006 .59 3962890.53 37.21 148370 3.13 13.62
it
Streams AQ: waiting for time manage 948 0 2021434.2 18.98 948 .02 2132.31
ment or cleanup tasks
control file parallel write 1292057 2.64 266839.64 2.51 0 0 .21
log file parallel write 28433394 58.02 134658.55 1.26 0 0 0
db file sequential read 8307195 16.95 69830.07 .66 0 0 .01
free buffer waits 3117839 6.36 43374.04 .41 3106093 65.55 .01
log buffer space 55520 .11 20810.2 .2 20235 .43 .37
db file scattered read 583604 1.19 18169.58 .17 0 0 .03
write complete waits 17946 .04 17536.66 .16 17941 .38 .98
log file sync 282268 .58 10005.35 .09 9369 .2 .04
enq: RO - fast object reuse 26602 .05 6623.44 .06 2171 .05 .25
enq: CF - contention 1839 0 5178.14 .05 1723 .04 2.82
Streams AQ: qmn coordinator waiting 999 0 4311.01 .04 883 .02 4.32
for slave to start
buffer busy waits 32464 .07 3898.51 .04 3950 .08 .12
control file sequential read 2199199 4.49 3558.34 .03 0 0 0
SGA: MMAN sleep for component shrin 234330 .48 2523.65 .02 234216 4.94 .01
k
buffer exterminate 1583 0 1539.72 .01 1573 .03 .97
library cache pin 317 0 927.71 .01 316 .01 2.93
enq: CI - contention 1829 0 570.84 .01 159 0 .31
log file switch completion 1658 0 517.18 0 425 .01 .31
enq: TX - row lock contention 257 0 438.8 0 149 0 1.71
read by other session 27269 .06 355.17 0 52 0 .01
os thread startup 3869 .01 338.67 0 98 0 .09
latch: shared pool 760 0 285.87 0 0 0 .38
latch: row cache objects 664 0 250 0 0 0 .38
Data file init write 16324 .03 231.59 0 0 0 .01
reliable message 19189 .04 218.16 0 170 0 .01
latch: library cache 483 0 172.51 0 0 0 .36
SQL*Net message from dblink 1143086 2.33 128.69 0 0 0 0
latch free 6091 .01 121.1 0 0 0 .02
library cache load lock 90 0 89.48 0 18 0 .99
log file single write 1894 0 69.76 0 0 0 .04
cursor: pin S wait on X 5183 .01 55.87 0 5165 .11 .01
local write wait 6732 .01 42.58 0 2 0 .01
log file switch (checkpoint incompl 95 0 42.11 0 30 0 .44
ete)
row cache lock 119 0 30.96 0 10 0 .26
SQL*Net more data from dblink 17198 .04 25.92 0 0 0 0
log file switch (private strand flu 69 0 17.54 0 5 0 .25
sh incomplete)
enq: HW - contention 180 0 16.53 0 5 0 .09
enq: PR - contention 9 0 14.5 0 2 0 1.61
enq: JS - queue lock 51 0 12.36 0 0 0 .24
SQL*Net more data to client 48311 .1 11.66 0 0 0 0
enq: TM - contention 12 0 10.66 0 3 0 .89
class slave wait 3128 .01 7.03 0 1 0 0
JS coord start wait 68 0 6.42 0 68 0 .09
direct path write 92712 .19 6.06 0 0 0 0
control file heartbeat 1 0 3.91 0 1 0 3.91
PX Deq: Par Recov Execute 100 0 3.8 0 0 0 .04
log file sequential read 1900 0 2.88 0 0 0 0
single-task message 50 0 2.61 0 0 0 .05
enq: TX - contention 11 0 2.38 0 0 0 .22
undo segment extension 1181001 2.41 1.95 0 1180981 24.92 0
db file single write 165 0 1.3 0 0 0 .01
enq: TX - index contention 97 0 1.27 0 0 0 .01
LGWR wait for redo copy 20840 .04 .66 0 0 0 0
JS kgl get object wait 8 0 .63 0 8 0 .08
SQL*Net message to dblink 1143086 2.33 .55 0 0 0 0
kksfbc child completion 14 0 .55 0 11 0 .04
direct path read temp 217237 .44 .41 0 0 0 0
latch: cache buffers chains 2138 0 .37 0 0 0 0
latch: messages 1245 0 .27 0 0 0 0
latch: redo writing 786 0 .15 0 0 0 0
PX Deq: Par Recov Reply 65 0 .09 0 0 0 0
latch: checkpoint queue latch 171 0 .09 0 0 0 0
latch: redo allocation 1029 0 .08 0 0 0 0
latch: cache buffers lru chain 268 0 .07 0 0 0 0
SGA: allocation forcing component g 5 0 .05 0 2 0 .01
rowth
db file parallel read 83 0 .04 0 0 0 0
latch: In memory undo latch 558 0 .04 0 0 0 0
latch: object queue header operatio 338 0 .04 0 0 0 0
n
direct path read 5042 .01 .03 0 0 0 0
PX Deque wait 7 0 .02 0 0 0 0
direct path write temp 4691 .01 .02 0 0 0 0
enq: SQ - contention 1 0 .02 0 0 0 .02
latch: session allocation 190 0 .02 0 0 0 0
PX Deq: Join ACK 15 0 .01 0 0 0 0
cursor: pin S 894 0 .01 0 0 0 0
enq: TX - allocate ITL entry 37 0 .01 0 0 0 0
kkdlgon 15 0 .01 0 0 0 0
latch: enqueue hash chains 37 0 .01 0 0 0 0
library cache lock 1 0 .01 0 0 0 .01
Log archive I/O 1 0 0 0 0 0 0
PX Deq: Par Recov Change Vector 2 0 0 0 0 0 0
PX Deq: Signal ACK 3 0 0 0 0 0 0
PX Deq: Test for msg 1 0 0 0 0 0 0
PX qref latch 1 0 0 0 1 0 0
SQL*Net break/reset to dblink 5 0 0 0 0 0 0
SQL*Net more data to dblink 1 0 0 0 0 0 0
buffer deadlock 27 0 0 0 27 0 0
checkpoint completed 4 0 0 0 0 0 0
cursor: mutex S 3 0 0 0 0 0 0
cursor: mutex X 1 0 0 0 0 0 0
enq: JS - q mem clnup lck 1 0 0 0 0 0 0
enq: PS - contention 2 0 0 0 0 0 0
enq: US - contention 1 0 0 0 0 0 0
instance state change 2 0 0 0 0 0 0
latch: library cache lock 4 0 0 0 0 0 0
latch: library cache pin 1 0 0 0 0 0 0
latch: object queue header heap 8 0 0 0 0 0 0
latch: undo global data 3 0 0 0 0 0 0
recovery read 39 0 0 0 0 0 0Hi,
If its for a week than I won't bother. Probably you should try to get teh same report for these wait events in a much smaller period , like 20-30minutes of time period when your db is fully operational. If still at that time the wait events,these or any other, shoot up to high wait times, things can be investigated more deeply.
HTH
Aman.... -
Hello SAP Community,
I start by mentioning a few details about the system I'll be talking about in this subject:
- SAP NetWeaver 7.0
- Oracle Database 10.2g
I was reading the following Note: "Note 618868 - FAQ: Oracle performance", in order to try to understand what's causing the oracle database to have slow performance.
While reading section 3 "How can I determine whether the general database performance can be optimized?" I found out that the ratio of "Busy wait time to CPU time" is away above the recommended 60:40 value. I'm getting a 94:6 ratio. This value was calculated using the query:
SELECT
ROUND((STM1.VALUE - STM2.VALUE) / 1000000) "BUSY WAIT TIME (S)",
ROUND(STM2.VALUE / 1000000) "CPU TIME (S)",
ROUND((STM1.VALUE - STM2.VALUE) / STM1.VALUE * 100) || ' : ' ||
ROUND(STM2.VALUE / STM1.VALUE * 100) RATIO
FROM V$SYS_TIME_MODEL STM1, V$SYS_TIME_MODEL STM2
WHERE STM1.STAT_NAME = 'DB time' AND STM2.STAT_NAME = 'DB CPU';
With such high values, SAP recommends to improve system performance doing some "wait event tuning".
Can someone give me some directions about this subject? Some guides specific to this subject would be nice. Any further information about my system you may require, please ask me.
Thanks in advance.
Best regards,
Daniel GarridoHello again,
Before I did any changes to the Oracle's parameters I checked the Note 619188 - FAQ: Oracle wait events, to understand what could be causing such high event wait time.
With the query:
SELECT EVENT, TOTAL_WAITS, TIME_WAITED, AVG_MS,
ROUND(RATIO_TO_REPORT(TIME_WAITED) OVER () * 100) PERCENT
FROM (SELECT SUBSTR(EVENT, 1, 30) EVENT, TOTAL_WAITS, TIME_WAITED,
ROUND(TIME_WAITED_MICRO / TOTAL_WAITS / 1000, 2) AVG_MS
FROM V$SYSTEM_EVENT
WHERE WAIT_CLASS NOT IN ('Idle', 'System I/O')
UNION
SELECT 'CPU' EVENT, NULL, VALUE, NULL
FROM V$SYSSTAT
WHERE STATISTIC# = 12
ORDER BY 3 DESC)
WHERE ROWNUM <=10;
I got the non-idle events that took more time in my system and the result was:
Result of the SELECT statement
EVENT
TOTAL_WAITS
TIME_WAITED
AVG_MS
PERCENT
log file switch (archiving nee
578.686
57.850.863
999.69
80
buffer busy waits
712.163
6.420.932
90.16
9
CPU
0
2.791.238
4
db file sequential read
4.005.546
1.746.442
4.36
2
log file sync
10.176.490
1.577.177
1.55
2
enq: TX - row lock contention
854.451
642.955
7.52
1
db file scattered read
1.055.533
621.332
5.89
1
enq: CF - contention
210.085
246.910
11.75
0
read by other session
561.558
119.910
2.14
0
log file switch completion
10.777
85.843
79.65
0
So most of the TIME_WAITED for wait events was because of the "log file switch (archiving needed)", after reading what could cause such wait event, I understood this was related with a problem I previously had in the server, where the archiving folder was with no space left. (Meanwhile the backup of the archives is being done and so the folder is being cleaned on a daily basis).
Thank you all for your help! -
No wait events info in trace file?
A very good day to all experts,
I am tracing a session using the below procedure.
dbms_system.set_ev(12,13,EV=>10046,LE=>12,NM=>'');
I am just displaying the following information in trace file.Trace file is not displaying any wait events even when i am doing level 12 tracing.How i can see the wait event information in trace files?
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.01 0.01 0 0 0 0
Fetch 2 0.00 0.05 2 2 0 1
total 4 0.01 0.07 2 2 0 1
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 55
Rows Row Source Operation
1 TABLE ACCESS BY INDEX ROWID aaa_USERS (cr=2 pr=2 pw=0 time=58806 us)
1 INDEX UNIQUE SCAN SYS_C004271 (cr=1 pr=1 pw=0 time=42773 us)(object id 47506)
Thank you....Your post is without version information up to 4 digits.
You post tkprof output.
Not all version of Oracle have tkprof post wait event info.
IIRC. this started in Oracle 9iR2.
You would need to look in the raw trace file to find out whether this information is actually available. You will find it is.
This could likely being caused by using 8i, which doesn't have this facility.
But as you don't post a version, your question can not be answered.
Sybrand Bakker
Senior Oracle DBA -
hi,
why does the following wait event occurs.how to tune these wait events
control file parallel write and direct path load
With Regards
Boo"control file parallel write" event occurs while the session is writing physical blocks to all control files.
This happens when:
* The session starts a control file transaction (to make sure that the control files
are up to date in case the session crashes before committing the control file
transaction)
* The session commits a transaction to a control file
* Changing a generic entry in the control file, the new value is being written to all
control files
The wait time is the time it takes to finish all writes to all control files
To reduce this wait event, you can decrease the number of your control files (if this number too high) or place your control files to faster disks.
"direct path load" event occurs when a session waits for completion of direct load operations to database files. For example, if you are using SQL*Loader direct path load operation or import dump file made in direct mode.
To reduce this wait event, you can also place your control files to faster disks. -
How can I make custom event alerts?
This is what I'm offered when I try to sent an event alert:
http://img543.imageshack.us/img543/5805/img0017w.png
But what if for example I would like to set the alert 3 hours and 20 minutes before?
Thank you in advancekillwin98 wrote:
I'm using Google Calendar as my 3rd party program, but the whole point is to set these events on the iPhone. Is there an iPhone app that can create these custom event alerts?
I have not yet found an app that creates custom times for Calendar's, only on Tasks. -
Hi,
I am getting many Wait Events in SQL Server 2012. Please let me know how can I resolve these wait events.
ASYNC_IO_COMPLETION
WRITELOG
IO_COMPLETION
PAGELATCH_EX
PAGELATCH_SH
SOS_SCHEDULER_YIELD
LCK_M_X
LCK_M_U
RegardsHallo Blitz,
Shanky has hitten the nail - SQL Server always will wait. Your posted list doesn't mean anything without knowing anything about your environment and workloads.
Just run the following script from Glen Berry to get a priorized list of the waits and post the result here. THAN we may help you detecting a "problem" :)
WITH [Waits] AS
(SELECT
[wait_type],
[wait_time_ms] / 1000.0 AS [WaitS],
([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS],
[signal_wait_time_ms] / 1000.0 AS [SignalS],
[waiting_tasks_count] AS [WaitCount],
100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() AS [Percentage],
ROW_NUMBER() OVER(ORDER BY [wait_time_ms] DESC) AS [RowNum]
FROM sys.dm_os_wait_stats
WHERE [wait_type] NOT IN (
N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR',
N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH',
N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
N'CHKPT', N'CLR_AUTO_EVENT',
N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE',
N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD',
N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
N'EXECSYNC', N'FSAGENT',
N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
N'HADR_LOGCAPTURE_WAIT', N'HADR_NOTIFICATION_DEQUEUE',
N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP',
N'LOGMGR_QUEUE', N'ONDEMAND_TASK_QUEUE',
N'PWAIT_ALL_COMPONENTS_INITIALIZED',
N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH',
N'SLEEP_DBSTARTUP', N'SLEEP_DCOMSTARTUP',
N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP',
N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT',
N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
N'SQLTRACE_WAIT_ENTRIES', N'WAIT_FOR_RESULTS',
N'WAITFOR', N'WAITFOR_TASKSHUTDOWN',
N'WAIT_XTP_HOST_WAIT', N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
N'WAIT_XTP_CKPT_CLOSE', N'XE_DISPATCHER_JOIN',
N'XE_DISPATCHER_WAIT', N'XE_TIMER_EVENT')
SELECT
[W1].[wait_type] AS [WaitType],
CAST ([W1].[WaitS] AS DECIMAL (16, 2)) AS [Wait_S],
CAST ([W1].[ResourceS] AS DECIMAL (16, 2)) AS [Resource_S],
CAST ([W1].[SignalS] AS DECIMAL (16, 2)) AS [Signal_S],
[W1].[WaitCount] AS [WaitCount],
CAST ([W1].[Percentage] AS DECIMAL (5, 2)) AS [Percentage],
CAST (([W1].[WaitS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgWait_S],
CAST (([W1].[ResourceS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgRes_S],
CAST (([W1].[SignalS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgSig_S]
FROM [Waits] AS [W1]
INNER JOIN [Waits] AS [W2]
ON [W2].[RowNum] <= [W1].[RowNum]
GROUP BY [W1].[RowNum], [W1].[wait_type], [W1].[WaitS],
[W1].[ResourceS], [W1].[SignalS], [W1].[WaitCount], [W1].[Percentage]
HAVING SUM ([W2].[Percentage]) - [W1].[Percentage] <= 97; -- percentage threshold
GO
With this result we "may" help solving problems...
MCM - SQL Server 2008
MCSE - SQL Server 2012
db Berater GmbH
SQL Server Blog (german only) -
Single-Task Message Wait Event
Discovered while researching some performance issues....
A statspack report on the metadata repository is showing a lot of single-task message waits.
Is this normal? What is the source of these waits?
Per Oracle 8i documentation... "Oracle is diminishing the support of single-task mode."
Why is this showing up in a 9.2.0.8 database???
Any insights welcome...
Thanks,
Henry
Edited by: OracleDBAinPA on Dec 8, 2009 6:56 AMAs you can see, no one replied to the message...
But, our performance issue was due to a memory leak in the listener (documented bug in 9.2.0.8).
Restarting the listener, also reduced the wait... -
SQL*Net break/reset to client wait event
Hi,
Can you please explain me about "SQL*Net break/reset to client" wait event. One of my session was waiting for this event and when I looked which is causing the problem there are many duplicates in the input which were geting rejecting due ot the primary key. I didn't exactly get how the duplicate reject causing this wait event.
I appreciate your help !!
Thanks
Anand
Edited by: user509266 on Sep 4, 2009 10:58 AMBetter place to ask is over in the Database forums.
-
Waiting event when execute my jdbc queries
I write a simple multithread jdbc programme to connect to oracle, execute 10 time "select * from mytable" , when I start 2 threads, the time each thread use to complete queries is 9 second. when i start 3 threads, it become extremly slow.
I notice there are serveral waiting event: resmgr:waiting in end wait, resmgr:waiting in actses run, and single-task message , they are waiting for as long as 4 seconds. they after my programm finished,
could anyone tell me what are these event? do they affect the performance of my oracle?I write a simple multithread jdbc programme to connect to oracle, execute 10 time "select * from mytable" , when I start 2 threads, the time each thread use to complete queries is 9 second. when i start 3 threads, it become extremly slow.
I notice there are serveral waiting event: resmgr:waiting in end wait, resmgr:waiting in actses run, and single-task message , they are waiting for as long as 4 seconds. they after my programm finished,
could anyone tell me what are these event? do they affect the performance of my oracle? These wait events are associated with the Resource Manager which handles the Consumer Groups. Try changing your consumer group are shutting the Resource Manager off with
alter system set resource_manager_plan='';
then test your queries again. -
How do I the interpret "Disk file operations I/O" wait event?
I have a large and very busy batch database. All of a sudden the "Disk file operations I/O" wait event is in the top 5 in AWR.
The manual page isn't very helpful:
http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/waitevents003.htm#insertedID40
Disk file operations I/O
This event is used to wait for disk file operations (for example, open, close, seek, and resize). It is also used for miscellaneous I/O operations such as block dumps and password file accesses.
So here is my question: What exactly is going on when I see this wait event? Why doesn't it show up as one of the other I/O events? Can I make it go away? Should I make it go away?
DRsb92075 wrote:
All of a sudden the "Disk file operations I/O" wait event is in the top 5 in AWR.Top wait event
In EVERY Top Wait Event list, one wait event will ALWAYS be on top as #1; by definition of the list.
Simply because any item, even #1, appears on this list does not mean this is a problem & needs to be fixed.
If the Top Wait Event accounts for only 5 seconds out of a 1 hour sample,
then reducing it to ZERO won't measurably improve overall application performance.
The actual Time Waited is required to determine if it is a problem or not.It's taking 20% of time in a 15 minute sample. Anything that takes 20% of deserves to be understood....So: What actually causes it?
DR -
What's wrong from this wait event
Please,
Below are two tables showing respectively database wait event by wait class and session wait event by wait class.
1. Database wait event by wait class
WAIT TOTAL PCT TIME PCT
CLASS WAITS WAITS WAITED_SECS TIME
Application 7427 .08 1572.45 76.29
User I/O 50416 .57 193.24 9.38
Network 8714874 98.66 177.67 8.62
System I/O 48169 .55 85.98 4.17
2. Session wait event by wait class
SID USER WAIT TOTAL TIME_
NAME CLASS WAITS WAITED_SECS
318 PMS1000 Application 110 321.64
259 PMS1000 Application 81 212.8
318 PMS1000 Network 541943 31.8
259 PMS1000 Network 258368 17.76
258 PMS1000 Network 132774 9.34
318 PMS1000 User I/O 1392 7.49
Top Events found:
CPU + WAIT for CPU
ROW lock contention
SQL*Net more data from/to client
Question:
What may cause the application wait_class to be at the top?, event though the row lock contention was found ?
I also think the system may sufering from a network bottleneck, I also thinking to set SDU parameter, but the network is 1Gb speed, and I don't know if this can help.
Does someone give me some clue to pinpoint what is going wrong wiht the above stats?
thanks enoughuser552326
I've used the "code" tags to make your first section of data more readable:
WAIT TOTAL PCT TIME PCT
CLASS WAITS WAITS WAITED_SECS TIME
Application 7427 .08 1572.45 76.29
User I/O 50416 .57 193.24 9.38
Network 8714874 98.66 177.67 8.62
System I/O 48169 .55 85.98 4.17 If you want to know what events belong to each wait class you can query v$event_name:
select wait_class, name
from v$event_name
order by wait_class, nameThe events in class "Application" are:
SQL*Net break/reset to client
SQL*Net break/reset to dblink
Streams capture: filter callback waiting for ruleset
Streams: apply reader waiting for DDL to apply
Wait for Table Lock
enq: KO - fast object checkpoint
enq: PW - flush prewarm buffers
enq: RO - contention
enq: RO - fast object reuse
enq: TM - contention
enq: TX - row lock contention
enq: UL - contention
As you can see, this is consistent with your comment about the top event being "row lock contention". The implication of the name given to this wait class is that it is your application design that is causing the problem. Your biggest problem is that your code allows your users to lock each other out.
Looking at the summary numbers, the time spent on waiting for other users to get out of the way is a very large fraction of your total wait - until you deal with that, problems relating to I/O and network appear to be pretty irrelevant. Having said that, you seem to do a very large number of round-trips on the network - so maybe the amount of time you are losing is not hugely significant compared to the amount of work you are getting done. (You didn't actually tell us how long it took or how many concurrent users, to accumulate this wait time).
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk -
What could cause concurrency wait on a query execution ?
Hi all,
I have a DML that is part of a stored procedure(sp), the sp itself is executed from a front end. When user is not on peak load, all running OK. But on peak Load, the DML is on Top Activity and having Concurrency Wait 90%. When this happen, the database get stuck.
What could possibly cause this problem ?
Thank you very much for your help,
xtanto
Below is the query and the PLAN :
SELECT H1.INV_NO DOC_NO, H1.INV_DATE DOC_DATE, H1.REGS_CODE AS DOC_TYPE,
D1.PRODUCT, D1.WH_CODE, D1.RACK, D1.BATCH, D1.EXP_DATE, H1.LOC_CODE, 0 QTY_IN,
CASE WHEN D1.UOM = CON.UOM_B THEN D1.QTY * CON.COEFFICIENT ELSE D1.QTY END AS QTY_OUT,
0 AS QTY_ADJ, 'N/A', UOM, 0, D1.QTY, H1.LOCGRP_CODE, 0 AS QTY_ADJ_1,
H1.ROWID HRID, D1.ROWID DRID, CON.ROWID CRID, 3 AS TRTYPE, 'N' AS FLG_CAN, H1.INV_ID
FROM INVOICE_H H1,
INVOICE_BATCH D1,
MV_CONVERT_UOM CON
WHERE H1.INV_ID=D1.INVH_ID AND CON.PRODUCT=D1.PRODUCT AND D1.QTY>0 AND H1.INV_ID=:B1
UNION ALL
SELECT H1.INV_NO DOC_NO, H1.INV_DATE DOC_DATE, H1.REGS_CODE AS DOC_TYPE, B1.PRODUCT_B,
B1.WH_CODE, B1.RACK, B1.BATCH, B1.EXP_DATE, B1.LOC_CODE, 0 AS QTY_IN,
CASE WHEN B1.UOM = CON.UOM_B THEN B1.QTY * CON.COEFFICIENT ELSE B1.QTY END AS QTY_OUT,
0 AS QTY_ADJ, 'N/A', UOM, 0, B1.QTY, H1.LOCGRP_CODE, 0 AS QTY_ADJ_1,
H1.ROWID HRID, B1.ROWID DRID, CON.ROWID CRID, 4 AS TRTYPE, 'N' AS FLG_CAN, H1.INV_ID
FROM INVOICE_H H1, INVOICE_B B1,
MV_CONVERT_UOM CON WHERE H1.INV_ID=B1.INVH_ID AND CON.PRODUCT=B1.PRODUCT_B AND B1.QTY>0 AND H1.INV_ID=:B1
Plan hash value: 1140287671
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
| 0 | SELECT STATEMENT | | 7 | 940 | 14 (50)| 00:00:01 | | | |
| 1 | PX COORDINATOR | | | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10002 | | | | | Q1,02 | P->S | QC (RAND) |
| 3 | BUFFER SORT | | 7 | 940 | 14 (50)| 00:00:01 | Q1,02 | PCWP | |
| 4 | UNION-ALL | | | | | | Q1,02 | PCWP | |
|* 5 | HASH JOIN | | 5 | 670 | 8 (13)| 00:00:01 | Q1,02 | PCWP | |
| 6 | BUFFER SORT | | | | | | Q1,02 | PCWC | |
| 7 | PX RECEIVE | | 5 | 525 | 5 (0)| 00:00:01 | Q1,02 | PCWP | |
| 8 | PX SEND BROADCAST | :TQ10000 | 5 | 525 | 5 (0)| 00:00:01 | | S->P | BROADCAST |
| 9 | NESTED LOOPS | | 5 | 525 | 5 (0)| 00:00:01 | | | |
| 10 | TABLE ACCESS BY INDEX ROWID| INVOICE_H | 1 | 51 | 2 (0)| 00:00:01 | | | |
|* 11 | INDEX UNIQUE SCAN | INVOICE_H_PK | 1 | | 1 (0)| 00:00:01 | | | |
|* 12 | TABLE ACCESS BY INDEX ROWID| INVOICE_BATCH | 5 | 270 | 3 (0)| 00:00:01 | | | |
|* 13 | INDEX RANGE SCAN | INVOICE_BATCH_FKH | 6 | | 2 (0)| 00:00:01 | | | |
| 14 | PX BLOCK ITERATOR | | 1003 | 29087 | 2 (0)| 00:00:01 | Q1,02 | PCWC | |
| 15 | MAT_VIEW ACCESS FULL | MV_CONVERT_UOM | 1003 | 29087 | 2 (0)| 00:00:01 | Q1,02 | PCWP | |
|* 16 | HASH JOIN | | 2 | 270 | 7 (15)| 00:00:01 | Q1,02 | PCWP | |
| 17 | BUFFER SORT | | | | | | Q1,02 | PCWC | |
| 18 | PX RECEIVE | | 2 | 212 | 4 (0)| 00:00:01 | Q1,02 | PCWP | |
| 19 | PX SEND BROADCAST | :TQ10001 | 2 | 212 | 4 (0)| 00:00:01 | | S->P | BROADCAST |
| 20 | NESTED LOOPS | | 2 | 212 | 4 (0)| 00:00:01 | | | |
| 21 | TABLE ACCESS BY INDEX ROWID| INVOICE_H | 1 | 47 | 2 (0)| 00:00:01 | | | |
|* 22 | INDEX UNIQUE SCAN | INVOICE_H_PK | 1 | | 1 (0)| 00:00:01 | | | |
|* 23 | TABLE ACCESS BY INDEX ROWID| INVOICE_B | 2 | 118 | 2 (0)| 00:00:01 | | | |
|* 24 | INDEX RANGE SCAN | INVOICE_B_FKH | 2 | | 1 (0)| 00:00:01 | | | |
| 25 | PX BLOCK ITERATOR | | 1003 | 29087 | 2 (0)| 00:00:01 | Q1,02 | PCWC | |
| 26 | MAT_VIEW ACCESS FULL | MV_CONVERT_UOM | 1003 | 29087 | 2 (0)| 00:00:01 | Q1,02 | PCWP | |
Predicate Information (identified by operation id):
5 - access("CON"."PRODUCT"="D1"."PRODUCT")
11 - access("H1"."INV_ID"=TO_NUMBER(:B1))
12 - filter("D1"."QTY">0)
13 - access("D1"."INVH_ID"=TO_NUMBER(:B1))
16 - access("CON"."PRODUCT"="B1"."PRODUCT_B")
22 - access("H1"."INV_ID"=TO_NUMBER(:B1))
23 - filter("B1"."QTY">0)
24 - access("B1"."INVH_ID"=TO_NUMBER(:B1))Almost everything from
SQL> select name from v$event_name where wait_class = 'Concurrency';
NAME
logout restrictor
os thread startup
latch: cache buffers chains
buffer busy waits
enq: TX - index contention
latch: Undo Hint Latch
latch: In memory undo latch
latch: MQL Tracking Latch
latch: row cache objects
row cache lock
row cache read
cursor: mutex X
cursor: mutex S
cursor: pin S wait on X
latch: shared pool
latch: library cache
latch: library cache lock
latch: library cache pin
library cache pin
library cache lock
library cache load lock
resmgr:internal state change
resmgr:internal state cleanup
resmgr:sessions to exit
pipe putmay cause problems in your case. For example, you are using PX in your query, and in case of parallel_min_servers = 0 each execution of that query would require 2*N PX slaves (since inter-process communication is used), where N = Degree Of Parallelism of the query. So, it may wait, for example, for 'os thread startup'. But it's just an example, to get more precise answer you should carefully analyze wait events during such periods. For example, using WaitProf by Tanel Poder.
Maybe you are looking for
-
When I create a hyperlink to an anchor in a webpage in Pages (08 or 09), the resulting link is an error because Pages substitutes a space for the # key. For example, to link to an anchor you type www.apple.com#macbook and it should take you to the se
-
Modifying selection screen with help of radio buttons
Hi, In my program am using three parameters to download a three different files and I have to use radiobuttons for that. I want to download only one file at a time. I have used MODIF ID but it is not working for 3 Parameters but it is working for o
-
I have OS X 10.9.5, what do I lose if I upgrade to Yosemite?
I have a MacBook Pro 15" late 2013, 2.6 GHz with 16GB Memory and running OS X v10.9.5. The hard disk is 1TB with 453.74 GB available. I was going to upgrade to Yosemite but read there were some problems with it, e.g. running slowly and not working we
-
Generate Workflow / Case on CRM Updates by logged in users
I have a secured member based site where the members can update their personal profile details via a CRM update form. What I want is the ability to generate a workflow and case against that member anytime they UPDATE their CRM details directing the w
-
Trying to buy/rent and can't!
Hello, I tried to rent 10,000BC (no movie credits please) and when I tried via my TV it told me the file was being modified and cant. Ok, so I go to my computer and download through there. Then just now I tried to buy an album via my TV and I got t