如何避免TABLE ACCESS BY INDEX ROWID回表

 时间:2026-02-15 06:46:16

1、在数据中,当查询数据的时候,在索引中查找索引后,获得该行的rowid,根据rowid再查询表中数据,就是回表。如下例子:新建查询窗口。

如何避免TABLE ACCESS BY INDEX ROWID回表

2、新建查询语句。

select *

  from sys_user a

 inner join sys_user_role b

    on a.id = b.user_id

 inner join sys_role c

    on b.role_id = c.id

 where a.login_name = admin

如何避免TABLE ACCESS BY INDEX ROWID回表

3、查看执行计划。分析是否在表中创建索引。查询条件是否涉及非索引字段。

如何避免TABLE ACCESS BY INDEX ROWID回表

4、查询全部数据*涉及到先索引查询对应的rowid,然后根据rowid再次查询数据。我们改写只查询索引列,即可消除回表。

5、改写:

select a.id, c.id

  from sys_user a

 inner join sys_user_role b

    on a.id = b.user_id

 inner join sys_role c

    on b.role_id = c.id

 where a.id = 1;

如何避免TABLE ACCESS BY INDEX ROWID回表

6、查看执行计划。没有回表。

如何避免TABLE ACCESS BY INDEX ROWID回表

  • oracle 想把三张表关联起来,怎么关联
  • SQL如何让多个代码同时执行
  • SecureCRT怎么解决中文乱码问题?
  • 提示"No space left on device"错误的解决方法
  • Java 插入Excel工作表行或列
  • 热门搜索
    唐诗的特点 阴虱用什么药可以根除 沈阳城市学院怎么样 旅游景区质量等级的划分与评定 旅游景点推荐 泉州旅游必去十大景点推荐 煤气灶不打火怎么办 手术疤痕怎么去除 喀斯特地貌的特点 密云旅游景点