ITPub博客

首页 > 数据库 > Oracle > direct path read

direct path read

Oracle 作者:jijyoracle 时间:2016-02-23 14:09:45 0 删除 编辑
满足以上条件时,Oracle会进行直接路径读取。
Oracle为直接路径读取设置的三个“门槛”,非常的合理:
第一个阀值:表大小,太小的表从direct path read中的获益太小。但是特别需要引起你的警惕,如果表上存在统计信息,那么ORACLE会采取表的统计信息中记录的block与_small_table_threshold的设定值来做比较,而不是表的真实大小(dba_segments中记录的值)。这可能导致一些不是你预期的情况发生。如果你的统计信息与表的真实情况差异很大,那么你应该仔细考虑可能发生什么样的结果。如果你的表没有统计信息,ORACLE会依据表的真实大小来决定是否进行direct path read。
第二个阀值:脏块阀值,由于direct path read需要出发一个段的检查点,因此脏块太多,刷新脏块可能会导致IO繁忙
第三个阀值:表在内存里的cache率,如果cache率很高,那么还是走传统路径更快。direct path read的出现,需要让ORACLE公司的开发人员设计一个单独的结构来存储每个表有多少数据是脏数据,有多少数据被cache。不过这个结构目前还并未暴露给我们查询。在flush buffer cache后,这个结构被清空。(flush shared_pool并不会被清空)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30536096/viewspace-1993027/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-01-15

  • 博文量
    25
  • 访问量
    92165