标签:read db 11.2 file SQL 等待 parallel
客户在11.2.0.3环境中进行压力测试,发现出现大量的db file parallel read等待事件。
这个等待是11g以后才出现的,而在11g以前,一般这个等待事件发生在数据文件的恢复过程中。而11g新增了prefetch的特性,也可能导致这个等待事件的产生。
当运行压力测试时,后台的等待事件如下:
SQL> select event, count(*) from v$session where username = user group by event order by 2;
EVENT COUNT(*)
---------------------------------------------------------------- ----------
SQL*Net message from client 1
SQL*Net message to client 1
db file sequential read 24
db file scattered read 33
db file parallel read 42
可以看到用户进程经历比较严重的IO等待,而此时的db file parallel read,并不会带来性能提升。
可以通过添加隐含参数的方法来屏蔽prefetch功能,从而避免db file parallel read等待事件的产生:
_db_block_prefetch_limit=0
_db_block_prefetch_quota=0
_db_file_noncontig_mblock_read_count=0
控制文件添加这三个隐含参数后,重启数据库,再次运行压力测试,发现db file parallel read等待事件已经消失:
SQL> select event, count(*) from v$session where username = user group by event order by 2;
EVENT COUNT(*)
---------------------------------------------------------------- ----------
SQL*Net message to client 1
db file scattered read 30
db file sequential read 70
标签:read,db,11.2,file,SQL,等待,parallel 来源: https://blog.51cto.com/lhrbest/2715368
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。