在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表空间进行排序 。当从临时表空间中读取排序结果时 , 会产生direct path read.
2. 大量的Hash Join操作,利用temp表空间保存hash区 。
3. SQL语句的并行处理
4. 大表的全表扫描,在中,全表扫描的算法有新的变化,根据表的大小、高速缓存的大小等信息,决定是否绕过SGA直接从磁盘读Oracle11g取数据 。而10g则是全部通过高速缓存读取数据,称为table scan(large) 。11g认为大表全表时使用直接路径读 , 可能比10g中的数据文件散列读(db file scattered reads)速度更快,使用的latch也更少 。
大量的direct path read等待时间最可能是一个应用程序问题 。direct path read事件由SQL语句驱动,这些SQL语句执行来自临时的或常规的表空间的直接读取操作 。当输入的内容大于PGA中的工作区域时,带有需要排序的函数的SQL语句将排序结果写入到临时表空间中,临时表空间中的排序顺序串随后被合并 , 用于提供最终的结果 。读取排序结果时,Oracle会话在direct path read等待事件上等待 。DB_FILE_DIRECT_IO_COUNT初始化参数可能影响direct path read的性能 。
【oracle怎么读音发音英语 oracle怎么读】
推荐阅读
- 蜂王是怎么产生的,蜂王是公的还是母的 蜂王是公的还是母的
- 微信收藏里的东西删除了能恢复吗 微信收藏里的东西删除怎么恢复
- 鸭蛋怎么做可以不腥
- 面条怎么炒才不粘锅
- 酵母发面时间长了怎么办
- 如何解决孩子厌学英语 孩子厌学英语怎么办
- 怎么制作微信答题小程序 如何制作微信答题小程序
- 孩子不听话怎么跟老师沟通一下 孩子不听话怎么跟老师沟通
- 瓢虫英语怎么读 单词 瓢虫英语怎么读
- 连接wifi时怎么进入登录认证界面