direct path read 的使用场景是啥,解决啥痛点问题?
比如大表的全表扫描,还是访问大对象数据比如lob ,会使用?
这个事件表示直接从磁盘IO中读取数据,而不是通过数据库缓冲区高速缓存,SQL中查询的数据表数据量较大、分配的pga较小或者指定NOLOGGING等,都会触发direct path read,而你说的大表的全表扫描,还是访问大对象数据比如lob,触发这个事件的频率还是很高的
简单的说就是 为了防止大表把buffer cache里的数据从内存中挤走 直接将大表的数据放到pga 一般全表扫描基本都会触发
生产环境中 我基本都是默认关闭的
alter system set "_serial_direct_read"=never scope=spfile;
而且 关闭该特性 实测效果基本都比较好