在11g中,全表掃描可能使用direct path read方式 , 繞過buffer cache,這樣的全表掃描就是物理讀了 。在10g中,都是通過gc buffer來讀的,所以不存在direct path read的問題 。
direct path read較高的可能原因有:
1. 大量的磁盤排序操作,order by, group by, union, distinct, rollup, 無法在PGA中完成排序,需要利用temp表空間進(jìn)行排序 。當(dāng)從臨時(shí)表空間中讀取排序結(jié)果時(shí) , 會(huì)產(chǎn)生direct path read.
2. 大量的Hash Join操作,利用temp表空間保存hash區(qū) 。
3. SQL語句的并行處理
4. 大表的全表掃描,在中,全表掃描的算法有新的變化,根據(jù)表的大小、高速緩存的大小等信息,決定是否繞過SGA直接從磁盤讀Oracle11g取數(shù)據(jù) 。而10g則是全部通過高速緩存讀取數(shù)據(jù),稱為table scan(large) 。11g認(rèn)為大表全表時(shí)使用直接路徑讀 , 可能比10g中的數(shù)據(jù)文件散列讀(db file scattered reads)速度更快,使用的latch也更少 。
大量的direct path read等待時(shí)間最可能是一個(gè)應(yīng)用程序問題 。direct path read事件由SQL語句驅(qū)動(dòng),這些SQL語句執(zhí)行來自臨時(shí)的或常規(guī)的表空間的直接讀取操作 。當(dāng)輸入的內(nèi)容大于PGA中的工作區(qū)域時(shí),帶有需要排序的函數(shù)的SQL語句將排序結(jié)果寫入到臨時(shí)表空間中,臨時(shí)表空間中的排序順序串隨后被合并 , 用于提供最終的結(jié)果 。讀取排序結(jié)果時(shí),Oracle會(huì)話在direct path read等待事件上等待 。DB_FILE_DIRECT_IO_COUNT初始化參數(shù)可能影響direct path read的性能 。

【oracle怎么讀音發(fā)音英語 oracle怎么讀】
推薦閱讀
- 蜂王是怎么產(chǎn)生的,蜂王是公的還是母的 蜂王是公的還是母的
- 微信收藏里的東西刪除了能恢復(fù)嗎 微信收藏里的東西刪除怎么恢復(fù)
- 鴨蛋怎么做可以不腥
- 面條怎么炒才不粘鍋
- 酵母發(fā)面時(shí)間長了怎么辦
- 如何解決孩子厭學(xué)英語 孩子厭學(xué)英語怎么辦
- 怎么制作微信答題小程序 如何制作微信答題小程序
- 孩子不聽話怎么跟老師溝通一下 孩子不聽話怎么跟老師溝通
- 瓢蟲英語怎么讀 單詞 瓢蟲英語怎么讀
- 連接wifi時(shí)怎么進(jìn)入登錄認(rèn)證界面
