博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 直接路径读
阅读量:6696 次
发布时间:2019-06-25

本文共 776 字,大约阅读时间需要 2 分钟。

hot3.png

在11g中,全表扫描可能使用direct  read方式,绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题。

direct path read较高的可能原因有:

1. 大量的磁盘排序操作,order by, group by, union, , rollup, 无法在PGA中完成排序,需要利用temp表空间进行排序。 当从临时表空间中读取排序结果时,会产生direct path read.

2. 大量的 Join操作,利用temp表空间保存区。

3. SQL语句的并行处理

4. 大表的全表扫描,在中,全表扫描的算法有新的变化,根据表的大小、高速缓存的大小等信息,决定是否绕过SGA直接从磁盘读11g取数据。而10g则是全部通过高速缓存读取数据,称为table scan(large)。11g认为大表全表时使用直接路径读,可能比10g中的数据文件散列读(db file scattered reads)速度更快,使用的latch也更少。

大量的direct path read等待时间最可能是一个应用程序问题。 direct path read事件由SQL语句驱动,这些SQL语句执行来自临时的或常规的表空间的直接读取操作。 当输入的内容大于PGA中的工作区域时,带有需要排序的函数的SQL语句将排序结果写入到临时表空间中,临时表空间中的排序顺序串随后被合并,用于提供最终的结果。读取排序结果时,会话在direct path read等待事件上等待。DB_FILE_DIRECT_IO_COUNT初始化参数可能影响direct  read的性能。

 

image.php?url=0LrjZ8CWwU

转载于:https://my.oschina.net/u/3635497/blog/3044036

你可能感兴趣的文章
JDBC连接数据库(一)
查看>>
linux上mongodb的安装与卸载
查看>>
git使用问题
查看>>
Eclipse GBK批量转UTF-8插件(转)
查看>>
bootstrap table footerFormatter用法 统计列求和 sum、average等
查看>>
Docker 跨主机网络方案分析
查看>>
[转]自然语言处理中的Attention Model:是什么及为什么
查看>>
jsp+easyui+DataGrid 例子
查看>>
tomcat的class加载的优先顺序
查看>>
php课程 4-15 数组遍历、超全局数组、表单提交数据(多看学习视频)
查看>>
FindWindow用法
查看>>
Oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解
查看>>
用反卷积(Deconvnet)可视化理解卷积神经网络还有使用tensorboard
查看>>
SuperMap iObject入门开发系列之五管线属性查询
查看>>
[转]简单的动态修改RDLC报表页边距和列宽的方法
查看>>
VS2010使用Release进行调试的三个必须设置选项
查看>>
安卓系统上的远程 JS 调试 Remote JavaScript Debugging on Android
查看>>
SEO艺术
查看>>
Python标准库
查看>>
SQL基础教程
查看>>