Home » RDBMS Server » Performance Tuning » db file parallel read (11.2.0.3.0)
|
|
Re: db file parallel read [message #598184 is a reply to message #598181] |
Fri, 11 October 2013 01:51   |
 |
rishwinger
Messages: 132 Registered: November 2011
|
Senior Member |
|
|
Hi Lalit
Snippet from trace file
WAIT #11529215043908151976: nam='db file parallel read' ela= 5770 files=1 blocks=3 requests=3 obj#=39917 tim=4677697632910
WAIT #11529215043908151976: nam='db file parallel read' ela= 11829 files=1 blocks=3 requests=3 obj#=39917 tim=4677697645064
WAIT #11529215043908151976: nam='db file parallel read' ela= 8115 files=1 blocks=3 requests=3 obj#=39917 tim=4677697655829
WAIT #11529215043908151976: nam='db file parallel read' ela= 6574 files=1 blocks=8 requests=8 obj#=39917 tim=4677697662726
WAIT #11529215043908151976: nam='db file parallel read' ela= 14220 files=1 blocks=4 requests=4 obj#=39917 tim=4677697683444
WAIT #11529215043908151976: nam='db file parallel read' ela= 134 files=1 blocks=7 requests=7 obj#=39917 tim=4677697683981
there are lot of db file parallel read events with maximum block request for 38
Interestingly all db file parallel read event is for obj#=39917
Please let me know if more information is required
[Updated on: Fri, 11 October 2013 01:51] Report message to a moderator
|
|
|
|
Re: db file parallel read [message #598973 is a reply to message #598187] |
Mon, 21 October 2013 03:38  |
michael_bialik
Messages: 621 Registered: July 2006
|
Senior Member |
|
|
IMHO - there are 2 possible solutions:
1. Rewrite the query to access table function first:
SELECT CUST.row_id,
CUST.user_id
FROM
( SELECT DISTINCT T.*
FROM TABLE(CAST (package.function(:"SYS_B_0") AS v_archar2_Type)) t ) USER_LIST,
custom_table cust
WHERE USER_LIST.USER_ID = cust.user_id
AND ( CUST.USER_STATUS = :1 )
AND ( CUST.USER_BEHAV = :2 )
AND ( CUST.USER_FLAG = :3 )
AND ( CUST.USER_DEL_FLAG = :4 )
ORDER BY CUST.USER_id
2. As you can see in TKPROF - the query retrieves 414820 entries via INDEX RANGE SCAN on IDX_USER_INDEX, but only 7426 from the table itself.
There is probably filtering on the other WHERE conditions. You can try index :
CREATE INDEX ... ON custom_table ( USER_BEHAV, USER_STATUS, USER_FLAG, USER_DEL_FLAG, USER_ID ) ...
You may use fewer columns in index, but you have to find the most efficient filtering predicate first.
HTH.
|
|
|
Goto Forum:
Current Time: Mon Apr 28 08:26:40 CDT 2025
|