非空閒等待事件之:db file scattered read(轉)
>> MBRC因子不能跨越整個區,如果一個區包含10個塊,MBRC因子=8,那麼多塊讀取會發布兩次讀取呼叫,一次8個資料塊,一次2個資料塊。 >> 要讀取的多塊有,有一部分已在CACHE中,這時多塊讀取操作被分化成幾次來完成。
>> 區邊界:當某個區中的最後一組塊只有一個塊時,ORALCE使用單塊讀取呼叫取出這個塊。這通常不是一個問題,除非區尺寸過小。 >> 存在較多的連結的或遷移的行。ORALCE使用單塊I/O呼叫尋求每個連結的或遷移的行。在DBA_TABLES檢視中檢查表的CHAIN_CNT,如果該值較大,需要重新組織表(匯入/匯出或alter table move)。 >> 索引條目的建立。如在使用insert into table_A select * from table_B,如果table_A上有一個索引,在執行該語句時,會產生很多db sequential read事件,這是將索引塊讀入SGA中的結果。
alter session set db_file_multiblock_read_count=1000; -- 設定一個高得離譜的MBRC因子 select /*+ full(a) */ count(*) from big_table a; -- 進行全域性掃描 結果:透過捕獲10046事件,從生成的Trace檔案中獲得的P3的值就是最佳MBRC因子,以下是針對計程車系統,看來最佳的MBRC因子是64。 WAIT #1: nam='db file scattered read' ela= 48518 p1=12 p2=10 p3=64 WAIT #1: nam='db file scattered read' ela= 42922 p1=12 p2=74 p3=64 WAIT #1: nam='db file scattered read' ela= 41369 p1=12 p2=138 p3=64 WAIT #1: nam='db file scattered read' ela= 42752 p1=12 p2=202 p3=64
>> 該語句是否應該透過全表掃描或索引FFS訪問資料? >> 索引掃描或唯一掃描是否更為有效? >> 查詢是否使用了正確的驅動表? >> SQL謂詞是否適合於雜湊或合併聯接? >> 如果全表掃描是合適的,並行查詢是否可以改進響應時間?
在ORACLE10g中,表監控預設是啟動的。
>> 以v$sesstat檢視作為查詢物件的示例: select a.SID, b.name, a.VALUE 注:以此查詢可以粗略知道系統中大約什麼會話出現很多的表掃描。 >> 以v$session_event為基礎的查詢: select a.sid,
select hash_value,
事件號:188 事件名:db file scattered read 引數一:讀取塊的檔案號碼file# 引數二:起始塊號block# 引數三:讀取的塊總數blocks 由引數P1與P2推得訪問的資料物件: select s.segment_name, s.partition_name
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-564925/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db file scattered read等待事件事件
- 【等待事件】db file scattered read事件
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- db file sequential read等待事件事件
- 【等待事件】db file sequential read事件
- Oracle:db file scattered readOracle
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- 0316理解db file parallel read等待事件Parallel事件
- 0322理解db file parallel read等待事件2Parallel事件
- [20210315]理解db file parallel read等待事件3.txtParallel事件
- [20210315]理解db file parallel read等待事件4.txtParallel事件
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“read by other session”Oracle事件Session
- 【TUNE_ORACLE】等待事件之IO等待“direct path read”Oracle事件
- direct path read/read temp等待事件事件
- read by other session等待事件Session事件
- read by other session 等待事件分析Session事件
- log file sync等待事件事件
- 【等待事件】log file sync事件
- cell single block physical read等待事件BloC事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- 【WAIT】 log file sync等待事件說明AI事件
- log file sync等待事件處理思路事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之等待事件類別Oracle事件
- Latch free等待事件(轉)事件
- [20201204]關於等待事件Log File Sync.txt事件
- Latch free等待事件四(轉)事件
- Latch free等待事件三(轉)事件
- Latch free等待事件二(轉)事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path write”Oracle事件
- buffer busy wait 等待事件說明(轉)AI事件
- Oracle等待事件之enq: TM – contentionOracle事件ENQ
- oracle等待事件之enq: CF – contentionOracle事件ENQ
- read content in a text file in pythonPython
- 【TUNE_ORACLE】等待事件之IO等待“direct path write temp”Oracle事件
- Solidity事件,等待事件Solid事件