oracle 11G direct path read 很美也很伤人

direct path read

在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的性能。

  一个隐含参数:

  _serial_direct_read = false 禁用direct path read

  _serial_direct_read = true 启用direct path read

  alter sytem set "_serial_direct_read"=never scope=both sid=‘*‘; 可以显着减少direct path read

看起来很美 当是它带来另外个等待事件,那就是要把缓存中的脏数据刷回数据文件中。激发check point 事件,DBWR写的任务很频繁。

大量的读IO导致IO缓慢,缓慢的IO又让DBWR写得更慢,同时check point事件会阻塞 DML。 在OLTP方面是很严重的事故。

因为应用程序存在大量的全表查询的语句。

oracle 11G direct path read 很美也很伤人

时间: 2024-10-28 20:49:37

oracle 11G direct path read 很美也很伤人的相关文章

很美,很悲的话语,值得要人深思

风吹落叶下,叶落树牵挂,叶离叶念花,叶念叶泪洒,叶落做春泥,叶泥更护花. 嫦娥为月醉,月却照兔归:月亮月徘徊,月阴月兔悲,月朗为谁喜,月暗为谁泣 圆月照夜空,月夜映寥星,月圆月残钩,月亮月孤清,月夜为谁照,月明为谁缺 花飞澄江练,澄江近空山.日暮斜阳隐,花魂随水流.昨日满数红,今朝万寂空. 蝴蝶为花醉,花却随风飞,花舞花落泪,花哭花瓣飞,花开为谁谢,花谢为谁悲,花开花落花无悔,缘来缘去缘如水 君过君落泪,君思君泪挥,君来为谁呆,君呆为谁哀,佳人为君爱,君却随性改,君隐君现君无奈,人来人往人自在

[转]Oracle 11g Direct NFS

Direct NFS ClientNAS storage devices use the Network File System (NFS) to access data. In Oracle Database 10g, NAS devices were accessed using operating system–specific kernel NFS drivers. This required that you tune many parameters, and the configur

深入解析direct path read (转)

文章转自:http://www.itpub.net/thread-1815281-1-1.html 传统读取数据的方式是服务器进程通过读取磁盘,然后把数据加载到共享内存中,这样后面的进程就可以通过共享内存访问这些数据,不用再通过缓慢的磁盘读取来完成.direct path read读取数据块方式,是指服务器进程直接读取数据文件,不经过buffer cache,这种方式读取的数据块会加载到服务器进程的PGA内中当中,不会进入buffer cache中.11G之前的direct path read主

Oracle 11g新特性direct path read引发的系统停运故障诊断处理

黎俊杰 | 2016-07-28 14:37 声明:部分表名为了脱敏而用XX代替 1.故障现象 (1)一个业务系统输入用户名与密码后无法进入首页,表现为一直在运行等待,运行缓慢 (2)整个系统无法正常使用,接近停运状态 2.故障解决方法 调整数据库参数alter system setevent='10949 trace name context forever, level 1'来关闭"direct path read"(直接路径读)特性,使SQL语句可以从缓存中查询数据,达到降低I/

Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)

现象:Windows 操作系统的Oracle 数据库,使用sqlplus 连接(不指定实例名)连接很快,程序连接或使用连接工具或在Net Manager 中测试连接都需要花费约三四十秒的时间(程序连接可能失败). 通过tsping localhost 测试,亦花费三四十秒. 查看监听警告日志(所在位置在文章后面介绍),有信息如下: <msg time='2017-05-16T16:57:51.811+08:00' org_id='oracle' comp_id='tnslsnr' type='U

Oracle 11g安装报错Environment variable: "PATH"

Environment variable: "PATH" - This test checks whether the length of the environment variable "PATH" does not exceed the recommended length.预期值 : 1023实际值 : 1245 PRVF-3929 : Adding the Oracle binary location to the PATH environment var

oracle 11g centos6 安装

选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS(Internet连接共享)给VMware Network Adapter VMnet1这样对于虚拟机,网关是192.168.137.1,IP地址请也要设置在192.168.137.0/24段硬盘40G,内存2G 1.下载软件1.1.CentOS 6(x86_64)http://mirrors.163

[教程]Oracle 11g Express 安装和使用教程

使用工具的第一步就是安装工具,配置环境!下面就Oracle 11g Express的安装和简单实用做一简介. 一.下载安装过程 去oracle的官网下载Oracle 11g express,大概300MB,下载完成后解压,打开后大致如下图 打开setup开始安装,为了保证安装成功,可以右键点击setup,选择用管理员权限运行. 点击下一步: 将目标文件夹选择非系统盘(主要是避免一些权限问题),然后下一步,接受安装协议: 输入自定义的系统账号密码,这个系统账户的账户名称默认是"system&quo

CentOS6安装 Oracle 11g R2

选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS(Internet连接共享)给VMware Network Adapter VMnet1这样对于虚拟机,网关是192.168.137.1,IP地址请也要设置在192.168.137.0/24段硬盘40G,内存2G 1.下载软件1.1.CentOS 6(x86_64)http://mirrors.163