- p1 file# 这是db file scattered read读取的数据块所在的数据文件文件号,从Oracle 8开始是绝对数据文件号ABSOLUTE file number (AFN)。
- p2 block# 这是db file scattered read读取的起始数据块号
- p3 blocks 这是db file scattered read读取的块的数量,最大为DB_FILE_MULTIBLOCK_READ_COUNT,从Oracle 10.2开始该参数会自动调优。
Systemwide Waits:
IO is a normal activity so you are really interested in unnecessary or slow IO activity.If the TIME spent waiting for multiblock reads is significant then determine which segments/objects Oracle is performing the reads against. See the "Tablespace IO", and "File IO" sections of the AWR (or STATSPACK) reports, along with ADDM and ASH output. These should show which tablespaces / files are servicing the most IO requests, and give an indication of the speed of the IO subsystem. Tablespaces / files involved in "db file scattered read" waits will have "Av Blks/Rd" > 1. The files where the reads are occuring can also be found by looking at V$FILESTAT where BLKS_READ / READS > 1 . (A ratio greater than 1 indicates there are some multiblock reads occuring). See the "Top SQL by Disk Reads" sections of AWR reports for clues about any SQL causing high I/O. If statistics gathering is enabled then V$SQL_PLAN can also give clues about SQL statements using FULL scans. It can sometimes be useful to see which sessions are performing scans and trace them to see if the scans are expected or not. This statement can be used to see which sessions are incurring waits:One can also look at:SELECT sid, total_waits, time_waited FROM v$session_event WHERE event='db file scattered read' and total_waits>0 ORDER BY 3,2 ;
Reducing Waits / Wait times:
Ideally you do not want to repeatedly perform full scans in online portions of an application when there is a faster more selective way to get at the data - in this case query tuning should be used to optimize the online SQL. In non online portions of an application table scanning is much more likely to be required. The main steps for tuning IO waits are described inNote:223117.1. Some specific points for "db file scattered read" waits include:
- Tuning of SQL usually gives the largest gains
- Consider partitioning to reduce the amount of data you need to scan
- Are affected objects sparsely populated? If so consider shrinking them
- Consider Advanced Compression to reduce the number of blocks that need to be visited
- Careful use of multiple buffer pools and the CACHE option might help.
Troubleshooting
See the following documents for help troubleshooting issues relating to "db file scattered read" waits:Document:1475785.1 Resolving Issues Where Application Queries are Waiting Too Often for 'db file scattered read' Operations Document:1476092.1 Resolving Issues Where 'db file scattered read' Waits are Seen Due to IO Performance Problems Document:223117.1 Troubleshooting I/O Related Waits Document:1275596.1 How to Tell if the I/O of the Database is Slow
Known Issues / Bugs:
You can restrict the list below to issues likely to affect one of the following versions by clicking the relevant button:
NB Bug Fixed Description P 13400729 11.2.0.4, 12.1.0.1 increased elapsed time on "db file scattered read" in IBM AIX 6452766 10.2.0.4.3, 10.2.0.5, 11.2.0.1 10046 trace does not always show the correct "obj#" value in the trace 5376783 10.2.0.4, 11.1.0.6 DBMS_SPACE.OBJECT_GROWTH_TREND can perform excessive IO
- '*' indicates that an alert exists for that issue.
- '+' indicates a particularly notable issue / bug.
- See Note:1944526.1 for details of other symbols used