ITPub博客

首页 > 数据库 > Oracle > Oracle12c新特性TABLE ACCESS BY INDEX ROWID BATCHED

Oracle12c新特性TABLE ACCESS BY INDEX ROWID BATCHED

原创 Oracle 作者:始于脚下 时间:2018-08-15 16:46:50 0 删除 编辑

Oracle 12c中新增通过ROWID BATCHED访问数据块的方式,优化原来使用单个rowid进行数据块访问方式带来的资源消耗及对数据块的扫描次数,即TABLE ACCESS BY INDEX ROWID BATCHED特性。该特性通过隐藏参数“ _optimizer_batch_table_access_by_rowid ”控制,默认值为 true ,即默认开启。

以下是 SELECT * FROM employees WHERE employee_id > 190;的执行计划部分内容。

--------------------------------------------------------------------------------
|Id| Operation                           | Name     |Rows|Bytes|Cost(%CPU)|Time|
--------------------------------------------------------------------------------
| 0| SELECT STATEMENT                    |             |  |    |2(100)|        |
| 1|  TABLE ACCESS BY INDEX ROWID BATCHED|EMPLOYEES    |16|1104|2  (0)|00:00:01|
|*2|   INDEX RANGE SCAN                  |EMP_EMP_ID_PK|16|    |1  (0)|00:00:01|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("EMPLOYEE_ID">190)

以上执行计划的步骤 2显示了 hr.employees 表上 emp_emp_id_pk 索引的范围扫描。 数据库使用从索引获取的 rowid 来查找 employees 表中的相应行,然后检索它们。 步骤 1 中显示使用从索引中检索的 rowid进行BATCHED访问,数据库将对从索引中检索的rowid进行排序,然后按块顺序访问行,从而减少数据库必须访问的块的次数以降低资源的消耗。

 


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

请登录后发表评论 登录
全部评论
拥有多年电信行业Oracle数据库管理经验,拥有Oracle OCP、OCM证书,擅长各个场景下的数据库备份与恢复、性能分析管理、上线规划及部署实施、架构设计、自动化运维等。

注册时间:2016-10-18

  • 博文量
    60
  • 访问量
    56077