重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4207|回复: 1
打印 上一主题 下一主题

[Oracle] Oracle数据库禁止direct path read

[复制链接]
跳转到指定楼层
楼主
发表于 2020-5-10 15:37:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 王亮 于 2020-12-27 15:23 编辑

一般在OLAP环境中,大表在进行全表扫描的时候一般会出现direct path read等待事件,如果在OLTP环境中,出现大量的direct path read直接路径读取,这样就有问题了。一般在OLTP中,都是事物型的sql,如果想sql执行效率,那么最好从内存当中读取数据,直接从数据文件中读取,会产生大量的IO读取,那后果可想而知了。这里就可能需要我们禁用direct path read。
而禁用的方法则采用使用10949事件禁止全表扫描的时候,使用direct path read
SQL> alter system set event='10949 TRACE NAME CONTEXT FOREVER, level 1' scope=spfile;(需要重启后生效)
SQL>alter system set events '10949 TRACE NAME CONTEXT FOREVER, level 1'; (立即生效,不需要重启数据库)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2020-12-27 15:24:22 | 只看该作者
也可通过设置隐含参数来进行控制
禁用:
alter session set "_serial_direct_read"=false;

启用:
alter session set "_serial_direct_read"=auto;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-7-5 11:15 , Processed in 0.125165 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表