Wait event tracing.
Hi all
I use version 11.2.0.3.0 version of oracle. I want to know wait for trends in the last period of a month or two. So what will be the query or the datadictionary which gives you these details.
-At the first stage, I need to track wait times group of wait_class ((' utilisateur j'ai/o ', 'System I/O', 'Concurrency', 'Valider', 'Autre', 'Configuration', 'Réseau', 'Application'.. etc) for last period of a month or two.)
-In the second step, I want to draw the Group expects each event (enq: TX - line lock conflict, read by another session, file db scattered read, SQL * Net break/reset for customer... etc) within this category, for deadline by a month or two.
-Then you want to trace the specific enques (enq: TM - contention, enq: UL - contention, enq: TX - line lock conflict, wait for table lock,... etc) for above period.
Hello
Select time,
max (case when event = "db file scattered read" then time_waited_delta/1e3/total_waits_delta end) db_file_scattered_read ,
max (case when the event = 'db file sequential read' then time_waited_delta1e3//total_waits_delta end) db_file_sequential_read
of
(
Select sn . begin_interval_time time,
e. event event_name
e. total_waits - lag (e. total_waits () more (partition by e. ) event_name order by ( e. snap_id ( ) total_waits_delta
e. time_waited_micro lag (e. ) time_waited_micro () more (partition by e. ) event_name order by ( e. snap_id ( ) time_waited_delta
de DBA_HIST_SYSTEM_EVENT e,
SN DBA_HIST_SNAPSHOT
où e. snap_id = sn . snap_id
et ( e. event_name in ()'db file scattered read' 'db file sequential read'( )
)
Group by time
order by time DESC;
You can use the same approach for the tracing of events by waiting class (DBA_HIST_SYSTEM_EVENT a wait_class column).
Best regards
Nikolai
Tags: Database
Similar Questions
-
need to know how to enlarge events tracing buffers
What is the size of your swap file? increase the size and place it in the root of your systemdrive!
André "a programmer is just a tool that converts the caffeine in code" Deputy CLIP - http://www.winvistaside.de/
-
Hello
the 11.2.0.4 SE on Win 2008
then, do not have AWR. Then having the Top 5 leading timed events
I ran the following:
SELECT EVENT, n.WAIT_CLASS,
TIME_WAITED_MICRO, ROUND(TIME_WAITED_MICRO*100/S.DBTIME,1) PCT_DB_TIME
V $ SYSTEM_EVENT E, V$ EVENT_NAME N,.
(SELECT the DBTIME VALUE OF V$ SYS_TIME_MODEL WHERE STAT_NAME = "DB time") S
WHERE E.EVENT_ID = N.EVENT_ID
AND N.WAIT_CLASS NOT IN ('inactive', ' E/s system') and ROUND(TIME_WAITED_MICRO*100/S.DBTIME,1) <>0
ORDER BY ROUND(TIME_WAITED_MICRO*100/S.DBTIME,1) ASC;
Can I conclude that the most important issue on the database is db file sequential read and should be the subject of an investigation?
Or rows returned are meaningless on the performance? Tunning?
Do you sugest any other question?
Thank you.
Hello
> Can conclude that the most important issue on the database is db file sequential read and should be the subject of an investigation?
A wait event isn't a problem. It is just a little work of the database and the database is there work wo.
This is a problem only if you too (in many calls of i/o) or slow (long of IO call duration)
Your instance has been started just two minutes ago, no? This is not very important. Caches must warm up.
You need to install Statspack. Read about it ORACLE_HOME/rdbms/admin/spdoc.txt
Kind regards
Franck.
-
Wait events, SQL * Net message from client
Hi all
I have a doubt about oracle wait events, specifically of "SQL * Net message from client. I've read a lot about this, I've seen some say that network and other material resources can provoke him, and saw that the problems in the application code can cause it too. I am tracking a few tests here and I don't have that chooses are the double event, usually a lot of SQL * Net message to client waiting (I used sqlplus, developer sql and pl/sql). Can someone explain to me why? Another question is where this wait type cause interference, meet it demand for the database and stays on hold and do not meet another request so that the wait is over, is it? The waiting just finish when the application closes the database connection or there is another way to end the waiting?
Since then, thank you very much.
Hello
chooses double what usually causes a lot of SQL * Net message to client waiting
Do you run them from your server applications or from the DB server itself?
"SQL * Net client message" is an idle wait event although he'd still explain to the elapsed time of the query.
It indicates only that the database is waiting for the other entries of the customer and when he expects the DB, those expectations get incremented.
I suggest you explore size SDU, RECV_BUF_SIZE, and SEND_BUF_SIZE parameters.
http://docs.Oracle.com/CD/B19306_01/network.102/b14212/performance.htm
Kind regards
Suntrupth
-
Dear Sir
In one of my db, I use db link to generate the report for a different database. The db in which we use the dblink to remote databases; the following wait events are showed continuous:
PX Deq Credit: send blkd
PX Deq: Execution Msg
SQL * Net message from client
They indicate any problem? How can we get rid of it?
Kind regards
Hello
What should worry, to this end, I have sguuest read you link below.
As the default value for sufficient, depends on place on many factors as optimizer, which can not sometimes be enough when set to default values, cpu, memory, data, resources.
Concerning
Jihane Narain Sylca
-
Wait events "direct path write" and "direct path read".
Hello
We have a query that takes more than 2 minutes. It's a 9.2.0.7 database. We took the request trace/tkprof and identified there so manay 'direct entry path' and 'direct path read' wait for events in the trace file.
WAITING #3: nam = "Write" direct path ela = 5 201 p1 = p2 = p3 70710 = 15
WAITING #3: nam = "direct path read" ela = 170 201 p1 = p2 = 71719 p3 = 15
In the light of the foregoing, "p1 = 201" is a the file_id, but we could not find any data file, the temporary file, the control file with this id # 201.
Can you please let us know what "p1 = 201" here, how to identify the file that is causing the problem.
Thank you
SravanWhatever it is:
show parameter db_files
back? I think, is that it returns 200.
Read the file live and direct file writing events are reads and writes of tablespace TEMP. Wait events, folder # is reported as db_files + id of a temporary file. So, 201 means temp #1 file.
Now, as to your real performance issue.
Without seeing the SQL and the corresponding implementation plan, it is impossible to be sure. However, the most frequent causes of temporary entries are the operations of sorting and group by operations.
If you decide to display your plan and SQL execution, please be sure to make it readable by formatting it. Information on how to do this can be found here.
Hope that helps,
-Mark
Published by: mbobak on May 1st, 2011 01:50
-
How to see the info of waiting events. After executing a statement select query
Hello
How to see the info of waiting events. After running a select query. Is there a setting to the value of this option?
And I also want to see the following info. in the trace file. For this, what are the settings I need to adjust to the right?
ConcerningSELECT * FROM emp, dept WHERE emp.deptno = dept.deptno; call count cpu elapsed disk query current rows ---- ------- ------- --------- -------- -------- ------- ------ Parse 1 0.16 0.29 3 13 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 1 0.03 0.26 2 2 4 14 Misses in library cache during parse: 1 Parsing user id: (8) SCOTT
EvelyneFor
SQL > show parameter dump;
ORA-00942: table or view does not exist
>
UseGRANT SEECT ON v_$parameter to Your_User_Name
For
SQL > ALTER SESSION SET EVENTS = 10046 trace name forever, context level 12';
ERROR:
ORA-01031: insufficient privileges
>
UseGRANT ALTER SESSION to your_user
-
RMAN stuck on wait event "CPI RDBMS response."
Hi all
DB: 10.2.0.3 EA
Operating system: Solaris 10
Below is a summary of the issue I faced, followed by details.
Summary:
I'm doing a "Save as copy" operation to RMAN, but it is retained by the db writer process. The event of waiting for writer rman process and db is "RDBMS ipc reply. The db writer process is in turn blocked by the process of "RBAL. The RBAL process seems to be waiting on the same process of writer db with wait events ' enq: FP - global fob contention "." Any ideas what could be causing this and what can I do to solve this problem?
Details:
I run the following operation in RMAN:
However, the process is stuck on the event of waiting "RDBMS ipc reply.RMAN> backup as copy database format '+DEV1';
Information from v$ session_wait are:SID OSUSER PROGRAM LAST_CALL_ET EVENT ----- -------------------- ------------------------------ ------------ ------------------------------ 664 xxxxxx rman@xxxxxx (TNS V1-V3) 4509 rdbms ipc reply
After a bit of searching on Google, I discovered that the P1 parameter indicates the background is process causing the wait, so I checked that addresses:SEQ# SID EVENT P1 P2 STATE WAIT_TIME SECONDS_IN_WAIT ---------- ----- ------------------------------ ---------- ---------- ------------------- ---------- --------------- 2848 664 rdbms ipc reply 2 24 WAITING 0 3
So is East "DBW0" db writer process which is held upward. So I checked the wait for the DBW0 process event (I discovered the sid - it was 167)11:51:50 xxxx>SELECT NAME FROM V$BGPROCESS WHERE PADDR = 11:54:40 2 (SELECT ADDR FROM V$PROCESS WHERE PID = 2); NAME ------------------------------ DBW0
So 'RDBMS ipc reply' also expects the process of «DBW0» So I find the process of pid = 55.SEQ# SID EVENT P1 P2 STATE WAIT_TIME SECONDS_IN_WAIT ---------- ----- ------------------------------ ---------- ---------- ------------------- ---------- --------------- 30315 167 rdbms ipc reply 55 2147423061 WAITING 0 0
It turns out be RBAL. The sid of process RBAL is 321. So I find what he expects:11:59:48 xxxx>SELECT NAME FROM V$BGPROCESS WHERE PADDR = 12:04:39 2 (SELECT ADDR FROM V$PROCESS WHERE PID = 55); NAME ------------------------------ RBAL
The blocker for RBAL 167 session, which is "DBW0. I couldn't find any information on this wait event ' enq: FP - global fob contention "." I'm not able to make further progress on this matter, so any help will be much appreciated.12:04:41 xxxx>select event, blocking_session blocker from v$session where sid =321; EVENT BLOCKER ------------------------------ ---------- enq: FP - global fob 167 contention 12:06:14 xxxx>@sesswait Enter value for sid: 321 SEQ# SID EVENT P1 P2 STATE WAIT_TIME SECONDS_IN_WAIT ---------- ----- ------------------------------ ---------- ---------- ------------------- ---------- --------------- 12 321 enq: FP - global fob 1179648006 0 WAITING 0 61470 contention
Published by: joshic on June 30, 2010 04:25joshic wrote:
Hi all
DB: 10.2.0.3 EA
Operating system: Solaris 10
The blocker for RBAL 167 session, which is "DBW0. I couldn't find any information on this wait event ' enq: FP - global fob contention "." I'm not able to make further progress on this matter, so any help will be much appreciated.Looks like Bug 7334426: BACKUP HANG ON A HANG CONDITION BETWEEN DBW AND RBAL
-
Hello
the configurations below
Oracle 10 g r2, Red hat Linux 5, RAC
AWR report, I saw the following wait events
If I check the event - enq: TX - line lock conflict
Using sql, an event is - sysman - who
and the other est--oracle@ora (J003)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Top 5 timed events
Event waits time Avg Wait (ms) % Total call time wait class
Time CPU 40.8 13 283
db file scattered read 3 434 917 2 5 769 17.7 of the user/o i
ENQ: TX - conflict 9 846 4 809 488 14.8 Application line lock
DB file sequential read 3 664 522 1 4 528 13.9 user I/O
GC cr multi block 3 151 754 1 025 Cluster 3.1 request3 0
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Why this enq: TX - conflict of line lock having the lock for sysman & backround process
is that this will affect the performance of the database
RDS
Published by: user1000000 on September 14, 2009 07:54This is the reason why nobody will answer your question probably :-)
-
DB file scattered read with Free (CBC) latch wait events
Hi all
On our production database server, we found about 50 sessions in lock Free (CBC) wait wait event with about 30 sessions waiting for db file scattered read... Also, the CPU load was obviously very high(90-99%).
Our server has 4 CPU and OS is HP - UX
Oracle version: 8.1.6.0.0
The optimizer mode is RULE
We found all sessions waiting performing this query below:
For a clear view of the execution plan:(SELECT /*+ORDERED*/ ud.user_id, DECODE (udl.new_user_name, NULL, ud.user_name, udl.new_user_name ) AS user_name, udl.old_user_name, ud.PASSWORD, ud.status, au.first_name, au.last_name, sd.sd_id, sd.site_id, s.manager_number, sd.delivery_code, sd.site_server_id, au.email_address, au.outorg_id, udl.action_code, udl.action_category, udl.action_date AS action_date, au.admin_users_uid FROM user_delivery_log udl, user_delivery ud, appuser au, site_delivery sd, site_t s WHERE udl.action_date BETWEEN TO_DATE ('04/21/2009 17/46/25', 'MM/DD/YYYY HH24/MI/SS' ) AND TO_DATE ('04/21/2009 17/47/26', 'MM/DD/YYYY HH24/MI/SS' ) AND ( (udl.action_category = 'I' AND BITAND (udl.action_code, 8195) != 0 ) OR (udl.action_category = 'U' AND BITAND (udl.action_code, 2079) != 0 ) ) AND udl.site_id != 0 AND ud.user_id = udl.user_id AND ud.sd_id = udl.sd_id AND ud.user_id = au.user_id AND ud.sd_id = sd.sd_id AND sd.site_id = s.site_id AND (sd.delivery_code = 'AEN') AND ( udl.new_user_name IS NOT NULL OR 0 = ((SELECT /*+ORDERED*/ COUNT (*) FROM user_delivery_log udl1 WHERE udl1.action_date BETWEEN TO_DATE ('04/21/2009 17/46/25', 'MM/DD/YYYY HH24/MI/SS' ) AND TO_DATE ('04/21/2009 17/47/26', 'MM/DD/YYYY HH24/MI/SS' ) AND ( ( udl1.action_category = 'I' AND BITAND (udl1.action_code, 8195) != 0 ) OR ( udl1.action_category = 'U' AND BITAND (udl1.action_code, 2079) != 0 ) ) AND udl1.site_id != 0 AND udl1.sd_id = ud.sd_id AND udl1.user_id = ud.user_id AND udl1.new_user_name IS NOT NULL)) )) UNION (SELECT /*+ORDERED*/ ud.user_id, DECODE (udl.new_user_name, NULL, ud.user_name, udl.new_user_name ) AS user_name, NULL AS old_user_name, ud.PASSWORD, ud.status, au.first_name, au.last_name, sd.sd_id, sd.site_id, s.manager_number, sd.delivery_code, sd.site_server_id, au.email_address, au.outorg_id, 1536, 'U', udl.action_date AS action_date, au.admin_users_uid FROM user_delivery_log udl, user_delivery ud, appuser au, site_delivery sd, site_t s WHERE (udl.user_id, udl.action_date) IN ( SELECT udl.user_id, MAX (action_date) FROM user_delivery_log udl WHERE udl.action_date < TO_DATE ('04/21/2009 17/46/25', 'MM/DD/YYYY HH24/MI/SS') AND ( ( udl.action_category = 'I' AND BITAND (udl.action_code, 8195) != 0 ) OR ( udl.action_category = 'U' AND BITAND (udl.action_code, 2079) != 0 ) ) AND udl.user_id IN ( SELECT user_id FROM appuser_log aul WHERE aul.action_date BETWEEN TO_DATE ('04/21/2009 17/46/25', 'MM/DD/YYYY HH24/MI/SS' ) AND TO_DATE ('04/21/2009 17/47/26', 'MM/DD/YYYY HH24/MI/SS' ) AND aul.action_category = 'U' AND BITAND (aul.action_code, 5632) != 0) AND udl.new_user_name IS NOT NULL GROUP BY user_id) AND udl.site_id != 0 AND 0 = (SELECT COUNT (*) FROM user_delivery_log udl, site_delivery sd WHERE udl.action_date BETWEEN TO_DATE ('04/21/2009 17/46/25', 'MM/DD/YYYY HH24/MI/SS' ) AND TO_DATE ('04/21/2009 17/47/26', 'MM/DD/YYYY HH24/MI/SS' ) AND ( ( udl.action_category = 'I' AND BITAND (udl.action_code, 8195) != 0 ) OR ( udl.action_category = 'U' AND BITAND (udl.action_code, 2079) != 0 ) ) AND udl.site_id != 0 AND udl.sd_id = sd.sd_id AND udl.user_id = au.user_id AND (sd.delivery_code = 'AEN')) AND ud.user_id = au.user_id AND ud.user_id = udl.user_id AND ud.sd_id = sd.sd_id AND sd.site_id = s.site_id AND (sd.delivery_code = 'AEN')) ORDER BY action_date ASC; Below is the execution plan: Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=RULE (Cost=341 Card=3 Bytes=312) 1 0 SORT (UNIQUE) (Cost=342 Card=3 Bytes=312) 2 1 UNION-ALL 3 2 CONCATENATION 4 3 FILTER 5 4 NESTED LOOPS (Cost=12 Card=1 Bytes=100) 6 5 NESTED LOOPS (Cost=11 Card=1 Bytes=94) 7 6 NESTED LOOPS (Cost=10 Card=1 Bytes=77) 8 7 NESTED LOOPS (Cost=8 Card=1 Bytes=52) 9 8 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DEL IVERY_LOG' (Cost=4 Card=2 Bytes=58) 10 9 INDEX (RANGE SCAN) OF 'IE1_USER_DELIVERY _LOG' (NON-UNIQUE) (Cost=3 Card=2) 11 8 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DEL IVERY' (Cost=2 Card=1192563 Bytes=27428949) 12 11 INDEX (UNIQUE SCAN) OF 'IDX_PK_INV_USER_ SD_ID' (UNIQUE) (Cost=1 Card=1192563) 13 7 TABLE ACCESS (BY INDEX ROWID) OF 'APPUSER' ( Cost=2 Card=863102 Bytes=21577550) 14 13 INDEX (UNIQUE SCAN) OF 'PK_APPUSER' (UNIQU E) (Cost=1 Card=863102) 15 6 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_DELIVER Y' (Cost=1 Card=3494 Bytes=59398) 16 15 INDEX (UNIQUE SCAN) OF 'PK_NEW_SITE_DELIVERY ' (UNIQUE) 17 5 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_T' (Cost= 1 Card=64113 Bytes=384678) 18 17 INDEX (UNIQUE SCAN) OF 'PK_SITE_T' (UNIQUE) 19 4 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DELIVERY_LO G' (Cost=6 Card=1 Bytes=27) 20 19 INDEX (RANGE SCAN) OF 'IE1_USER_DELIVERY_LOG' (N ON-UNIQUE) (Cost=3 Card=1) 21 3 FILTER 22 21 NESTED LOOPS (Cost=12 Card=1 Bytes=100) 23 22 NESTED LOOPS (Cost=11 Card=1 Bytes=94) 24 23 NESTED LOOPS (Cost=10 Card=1 Bytes=77) 25 24 NESTED LOOPS (Cost=8 Card=1 Bytes=52) 26 25 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DEL IVERY_LOG' (Cost=4 Card=2 Bytes=58) 27 26 INDEX (RANGE SCAN) OF 'IE1_USER_DELIVERY _LOG' (NON-UNIQUE) (Cost=3 Card=2) 28 25 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DEL IVERY' (Cost=2 Card=1192563 Bytes=27428949) 29 28 INDEX (UNIQUE SCAN) OF 'IDX_PK_INV_USER_ SD_ID' (UNIQUE) (Cost=1 Card=1192563) 30 24 TABLE ACCESS (BY INDEX ROWID) OF 'APPUSER' ( Cost=2 Card=863102 Bytes=21577550) 31 30 INDEX (UNIQUE SCAN) OF 'PK_APPUSER' (UNIQU E) (Cost=1 Card=863102) 32 23 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_DELIVER Y' (Cost=1 Card=3494 Bytes=59398) 33 32 INDEX (UNIQUE SCAN) OF 'PK_NEW_SITE_DELIVERY ' (UNIQUE) 34 22 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_T' (Cost= 1 Card=64113 Bytes=384678) 35 34 INDEX (UNIQUE SCAN) OF 'PK_SITE_T' (UNIQUE) 36 2 NESTED LOOPS (Cost=314 Card=1 Bytes=112) 37 36 NESTED LOOPS (Cost=313 Card=1 Bytes=106) 38 37 NESTED LOOPS (Cost=312 Card=1 Bytes=89) 39 38 NESTED LOOPS (Cost=310 Card=1 Bytes=64) 40 39 NESTED LOOPS (Cost=306 Card=1 Bytes=41) 41 40 VIEW OF 'VW_NSO_1' (Cost=302 Card=1 Bytes=22 ) 42 41 SORT (GROUP BY) (Cost=302 Card=1 Bytes=35) 43 42 NESTED LOOPS (Cost=299 Card=1 Bytes=35) 44 43 TABLE ACCESS (FULL) OF 'APPUSER_LOG' ( Cost=93 Card=1 Bytes=16) 45 43 TABLE ACCESS (FULL) OF 'USER_DELIVERY_ LOG' (Cost=206 Card=73505 Bytes=1396595) 46 40 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DELIV ERY_LOG' (Cost=4 Card=429251 Bytes=8155769) 47 46 INDEX (RANGE SCAN) OF 'IE1_USER_DELIVERY_L OG' (NON-UNIQUE) (Cost=3 Card=429251) 48 39 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DELIVER Y' (Cost=4 Card=1192563 Bytes=27428949) 49 48 INDEX (RANGE SCAN) OF 'IDX_PK_INV_USER_SD_ID ' (UNIQUE) (Cost=3 Card=1192563) 50 38 TABLE ACCESS (BY INDEX ROWID) OF 'APPUSER' (Cost =2 Card=43156 Bytes=1078900) 51 50 INDEX (UNIQUE SCAN) OF 'PK_APPUSER' (UNIQUE) ( Cost=1 Card=43156) 52 51 NESTED LOOPS (Cost=7 Card=1 Bytes=31) 53 52 TABLE ACCESS (BY INDEX ROWID) OF 'USER_DEL IVERY_LOG' (Cost=6 Card=1 Bytes=24) 54 53 INDEX (RANGE SCAN) OF 'IE1_USER_DELIVERY _LOG' (NON-UNIQUE) (Cost=3 Card=1) 55 52 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_DEL IVERY' (Cost=1 Card=3494 Bytes=24458) 56 55 INDEX (UNIQUE SCAN) OF 'PK_NEW_SITE_DELI VERY' (UNIQUE) 57 37 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_DELIVERY' ( Cost=1 Card=3494 Bytes=59398) 58 57 INDEX (UNIQUE SCAN) OF 'PK_NEW_SITE_DELIVERY' (U NIQUE) 59 36 TABLE ACCESS (BY INDEX ROWID) OF 'SITE_T' (Cost=1 Ca rd=64113 Bytes=384678) 60 59 INDEX (UNIQUE SCAN) OF 'PK_SITE_T' (UNIQUE)
All the locks of CBC point to the APPUSER_LOG and USER_DELIVERY_LOG tables.Plan Table -------------------------------------------------------------------------------------------------------- | Operation | Name | Rows | Bytes| Cost | Pstart| Pstop | -------------------------------------------------------------------------------- | SELECT STATEMENT | | 3 | 312 | 341 | | | | SORT UNIQUE | | 3 | 312 | 342 | | | | UNION-ALL | | | | | | | | CONCATENATION | | | | | | | | FILTER | | | | | | | | NESTED LOOPS | | 1 | 100 | 12 | | | | NESTED LOOPS | | 1 | 94 | 11 | | | | NESTED LOOPS | | 1 | 77 | 10 | | | | NESTED LOOPS | | 1 | 52 | 8 | | | | TABLE ACCESS BY I|USER_DELI | 2 | 58 | 4 | | | | INDEX RANGE SCAN|IE1_USER_ | 2 | | 3 | | | | TABLE ACCESS BY I|USER_DELI | 1M| 26M| 2 | | | | INDEX UNIQUE SCA|IDX_PK_IN | 1M| | 1 | | | | TABLE ACCESS BY IN|APPUSER | 863K| 20M| 2 | | | | INDEX UNIQUE SCAN|PK_APPUSE | 863K| | 1 | | | | TABLE ACCESS BY IND|SITE_DELI | 3K| 58K| 1 | | | | INDEX UNIQUE SCAN |PK_NEW_SI | 3K| | | | | | TABLE ACCESS BY INDE|SITE_T | 64K| 375K| 1 | | | | INDEX UNIQUE SCAN |PK_SITE_T | 64K| | | | | | TABLE ACCESS BY INDEX|USER_DELI | 1 | 27 | 6 | | | | INDEX RANGE SCAN |IE1_USER_ | 1 | | 3 | | | | FILTER | | | | | | | | NESTED LOOPS | | 1 | 100 | 12 | | | | NESTED LOOPS | | 1 | 94 | 11 | | | | NESTED LOOPS | | 1 | 77 | 10 | | | | NESTED LOOPS | | 1 | 52 | 8 | | | | TABLE ACCESS BY I|USER_DELI | 2 | 58 | 4 | | | | INDEX RANGE SCAN|IE1_USER_ | 2 | | 3 | | | | TABLE ACCESS BY I|USER_DELI | 1M| 26M| 2 | | | | INDEX UNIQUE SCA|IDX_PK_IN | 1M| | 1 | | | | TABLE ACCESS BY IN|APPUSER | 863K| 20M| 2 | | | | INDEX UNIQUE SCAN|PK_APPUSE | 863K| | 1 | | | | TABLE ACCESS BY IND|SITE_DELI | 3K| 58K| 1 | | | | INDEX UNIQUE SCAN |PK_NEW_SI | 3K| | | | | | TABLE ACCESS BY INDE|SITE_T | 64K| 375K| 1 | | | | INDEX UNIQUE SCAN |PK_SITE_T | 64K| | | | | | NESTED LOOPS | | 1 | 112 | 314 | | | | NESTED LOOPS | | 1 | 106 | 313 | | | | NESTED LOOPS | | 1 | 89 | 312 | | | | NESTED LOOPS | | 1 | 64 | 310 | | | | NESTED LOOPS | | 1 | 41 | 306 | | | | VIEW |VW_NSO_1 | 1 | 22 | 302 | | | | SORT GROUP BY | | 1 | 35 | 302 | | | | NESTED LOOPS | | 1 | 35 | 299 | | | | TABLE ACCESS FU|APPUSER_L | 1 | 16 | 93 | | | | TABLE ACCESS FU|USER_DELI | 73K| 1M| 206 | | | | TABLE ACCESS BY IN|USER_DELI | 429K| 7M| 4 | | | | INDEX RANGE SCAN |IE1_USER_ | 429K| | 3 | | | | TABLE ACCESS BY IND|USER_DELI | 1M| 26M| 4 | | | | INDEX RANGE SCAN |IDX_PK_IN | 1M| | 3 | | | | TABLE ACCESS BY INDE|APPUSER | 43K| 1M| 2 | | | | INDEX UNIQUE SCAN |PK_APPUSE | 43K| | 1 | | | | NESTED LOOPS | | 1 | 31 | 7 | | | | TABLE ACCESS BY I|USER_DELI | 1 | 24 | 6 | | | | INDEX RANGE SCAN|IE1_USER_ | 1 | | 3 | | | | TABLE ACCESS BY I|SITE_DELI | 3K| 23K| 1 | | | | INDEX UNIQUE SCA|PK_NEW_SI | 3K| | | | | | TABLE ACCESS BY INDEX|SITE_DELI | 3K| 58K| 1 | | | | INDEX UNIQUE SCAN |PK_NEW_SI | 3K| | | | | | TABLE ACCESS BY INDEX |SITE_T | 64K| 375K| 1 | | | | INDEX UNIQUE SCAN |PK_SITE_T | 64K| | | | | --------------------------------------------------------------------------------
Could someone help me please in the setting of this query, I need to avoid latch and scattered read... .as application knows huge slow...
-YasserYasserRACDBA wrote:
Oracle version: 8.1.6.0.0
The optimizer mode is RULEWe found all sessions waiting performing this query below:
(SELECT /*+ORDERED*/
Even if you run based on rules in general, this query will run based on costs due to the indicator.
Do you have statistics in place to support the OBC?| VIEW |VW_NSO_1 | 1 | 22 | 302 | | |
| SORT GROUP BY | | 1 | 35 | 302 | | |
| NESTED LOOPS | | 1 | 35 | 299 | | |
| TABLE ACCESS FU|APPUSER_L | 1 | 16 | 93 | | |
| TABLE ACCESS FU|USER_DELI | 73K| 1M| 206 | | |This is typical of an unnested "IN" subquery - it looks like the optimiser has unnested your double-level IN subquery finding the maximum action date for a user who has done something in the last minute into a massive group and aggregate (so we've got unnesting and complex view merging all in one - I don't think I've seen that in 8i before).
Your db file scattered reads are probably extreme because (a) the USER_DELIxxxx table is big, and (b) the number of rows you are getting from the APPUSER_Lxxx table is more than the one that Oracle expects. You may find that collecting stats on APPUSER_Lxxx addresses this issue
I can't see any reason why the appuser_log table should be subject to cache buffers chains latch problems - if the plan is true than the only thing it suffers is one full scan. However, given the "one row" estimate that comes out of the VW_NOS_1 line, the optimizer is free to do all sorts of silly things as it works through the chain of nested loops, and if the number of rows from the driver is much more than one then the indexed activity against USER_DELIxxx could be huge.
For example:
| TABLE ACCESS BY IN|USER_DELI | 429K| 7M| 4 | | | | INDEX RANGE SCAN |IE1_USER_ | 429K| | 3 | | |
Is the next step in this nested loop (and similar things happen more down and in the previous sections of the plan) suggesting that a systematic index scan rnage will pick up thousands of lines - which, even if only about right, could mean a huge number of buffer visits to the table. ... the numbers don't make real sense, either by the way, but once again, it is probably due to the lack of appropriate statistics.
Concerning
Jonathan Lewis
http://jonathanlewis.WordPress.com
http://www.jlcomp.demon.co.UK"Science is more than a body of knowledge; It's a way of thinking. "
Carl Sagan -
What are the following wait events? Someone can it translate into the details?
What are the following wait events? Someone can it translate into the details?
PX Deq: Example table Q
PX Deq Credit: send blkd
PX Deq: Join AC
PX Deq: Signal ACK
PX Deq: Fragment of Msg
direct path read
PX qref latch
SQL> select event,total_waits,time_waited,wait_class from v$system_event order by total_waits; EVENT TOTAL_WAITS TIME_WAITED WAIT_CLASS ------------------------------ ----------- ----------- -------------------- db file scattered read 9333287 2471813 User I/O *PX Deq: Table Q Sample 11401065 43684227 Idle* *PX Deq Credit: send blkd 13798394 25448649 Other* SQL*Net message from client 20767011 1179217392 Idle SQL*Net message to client 20767019 2618 Network *PX Deq: Join ACK 23735308 1022426 Idle* *PX Deq: Parse Reply 24882798 1278726 Idle* rdbms ipc message 25223968 2147012652 Idle *PX Deq: Signal ACK 26615286 27873560 Other* cursor: mutex X 26745289 52071 Concurrency *PX Deq: Msg Fragment 43670924 78219774 Idle* EVENT TOTAL_WAITS TIME_WAITED WAIT_CLASS ------------------------------ ----------- ----------- -------------------- PX Idle Wait 68927042 4364594403 Idle PX Deq: Execute Reply 88498025 4326377 Idle PX Deq: Execution Msg 823922687 792964190 Idle *direct path read 1274423531 7242769 User I/O* *PX qref latch 2.3745E+11 49638018 Other* 122 rows selected.
http://download.Oracle.com/docs/CD/B19306_01/server.102/b14237/waitevents.htm#i968375
-
Satellite L650 - blue screen, event tracing fatal error
Hello! Good morning / evening depending on where you are!
I have a L - 650 Satellite nearly 3 years, wortking on Windows 10, updated regularly.
Since August 2015 a blue screen appears saying "Fatal error tracing Event" or "unhandled exception". then black screen "Press ctrl + Alt + Delete" so familiar to the born of the users BACK. Ant I have to reboot.In October, I had my fixed disk has changed, but the problem persists much less frequently.
Some forums announce that there is a compatibility issue with W10Any information or should I buy a new machine?
TKS
LionelMoreover, my new fixed disk is a 15KXTAP8T of TB Toshiba S/N 1 1P2C ICA HDKGB13HZA01 T MODREL MQ01ABD100 REV AAH AA01/AX
Lionel -
When is it OK for looping while you wait event?
Newbie question: in a world of logic non-blocking, when is it a good idea to loop waiting for something finish?
For example, I am told to check to END_OF_MEDIA (via PlayerListener) to see if a song I played with ToneControl is finished. So is it possible to just create a loop and wait for it be triggered?
Here is a very simple (albeit artificial) example. I want to play a melody (using ToneControl) twice. I play once, wait until it's done, then play again. END_OF_MEDIA tells me it's done. But have I not need to sit in a loop, then waiting for END_OF_MEDIA? Is it OK? It looks bad, but I don't know what would be the 'right' way.
Thank you.
Roricka
The code I used was something called an anonymous inner class Java. Here's another version that does not use this construction somewhat obscure:
void startTune() { Player p = Manager.createPlayer(...); p.addPlayerListener( new MyPlayerListener() ); p.start();} class MyPlayerListener implements PlayerListener { public void playerUpdate(Player player, String event, Object eventData) { if (event == END_OF_MEDIA) { processEndOfMedia(); } }}
Note This class myplayerlistener is declared inside the MyScreen, right as well as the methods of the class and variable fields. All this has done is to convert an anonymous inner class in an inner class with a name.
Now, it might look like you can move then comes from the MyPlayerListener class in a separate file named MyPlayerListener.java. But this does not work, at least not directly. The reason is related to one of the strange features of inner classes in Java (anonymous or not): an instance of an inner class carries with it an implicit reference to an instance of the containing class. That's why playerUpdate() can call processEndOfMedia() as if it was a MyPlayerListener member function, even if it is a member of MyScreen function. Somehow, an instance of MyPlayerListener lives a dual identity as an instance of MyScreen.
If you want that myplayerlistener has stated in its own file (or if you want her to be a top-level class, not public in MyScreen.java or a static inner class of MyScreen), the rules of the language to say that there can be more than double-identity of nature. At this time, you cannot call the processEndOfMedia() in the same way as a MyPlayerListener instance does not have a reference to an instance of MyScreen. (In fact, it has no way of knowing that processEndOfMedia() is a function in the class MyScreen!) The way out of this is to give MyPlayerListener a way to refer to a particular instance of MyScreen. Here's one way:
class MyPlayerListener implements PlayerListener { private MyScreen client; public MyPlayerListener(MyScreen client) { this.client = client; } public void playerUpdate(Player player, String event, Object eventData) { if (event == END_OF_MEDIA) { client.processEndOfMedia(); } }}
Then, back in MyScreen, you need to change the call to the constructor:
p.addPlayerListener( new MyPlayerListener(this) );
And if you put MyPlayerListener in another package that MyScreen, you must also change the visibility of public processEndOfMedia().
Anonymous inner classes are very convenient for these listener classes little, but they do not have the code a bit difficult to read. Put them in their own compilation units are more work, but it makes the code a little easier to manage, especially when come back you after a few months and try to understand what made you the way back when.
-
SQL * Net more data from client wait event
Hi all
DB 11.2.0.2
AIX 6
I get two events of high expectation of the AWR report page
(1) SQL * Net more data from client
synchronization of log files 2)
Need advice to the configuration of the hardware and network latency?
What should I do for the first event of waiting?
This simple average may, what they're doing massive data loads with a very large table size that the Oracle Server manages very effectively but necessarily expect much coming data of the customer and parallel large log files written to end on the validation. It is possible that setting a large SDU and tcp large transmiat and receive buffers would help if this happens to be what they do; Similarly, if that's what they do, then reduce their size of table can also have some effect.
Concerning
Jonathan Lewis
-
PX Deq Credit: send blkd wait event
Hi all
I'm working on a performance issue for a DB Oracle 10.2.0.5 under HP UX.
While taking a peek to the CWA, I see the following in the Top 5 timed events section:
The first is:
PX Deq Credit: send blkd
I checked and the tables and indexes are not in parallel, can be using queries with PARALLEL hint.
In the statistics section of time model, the first is sql execute time (95% of the time of the db)
Is "PX Deq Credit: send blkd" a problem?
I mean, is the DB waiting for or it's just a time of inactivity and I shouldn't worry about this.
pending classs, other is 94% of the time to the db.
Thanks in advance.
Published by: Diego on 20-Dec-2011 06:35It is an idle event details in
WAITEVENT: "PX Deq Credit: send blkd" [271767.1 ID]
on MOS.
Maybe you are looking for
-
my mail app keeps crashing ios 9.2.1 any corrections!
-
Touch and the launch cannot be installed on the Satellite M70 - 192
(Sorry for the bad English)I had uninstalled Touch and launch program because it did not work properly. When I tried to install another time readings that it can be installed only on Toshiba computer. How to fix that?
-
What card FireWire do I need for my computer?
Hello I'm going to buy a film scanner (Nikon Coolscan 8000 ED) and it is the only link through an ieee 1394 firewire. Unfortunately, my hp p6620f is not a FireWire port. I'm running on Windows 7. 1.) is it still possible for me to get a card firewire
-
Incoming calls do not show name
Hi, last week I bought a second Genesis e bike so I synced my contacts list, by going to tools > accounts > add account > Google There all my contact contact list has been updated, (all the contacts have a number of respective cel) but every time som
-
Save multiple Images of root folder
Hello colleagues LabView programmers,. I need HELP URGENT! ~ My current UI only able to save image of many smaller images tiled in 1 full picture when I have my directory of the path of entry and execute it and this program will save the entire Image