如何避免TABLE ACCESS BY INDEX ROWID回表

 时间:2024-10-18 21:19:14

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

如何避免TABLE ACCESS BY INDEX ROWID回表

2、新建查询语句。select * from sys_user ainner join sys_user_role b on a.id = b.user_idinner join sys_role c on b.role_id = c.idwhere 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 ainner join sys_user_role b on a.id = b.user_idinner join sys_role c on b.role_id = c.idwhere a.id = 1;

如何避免TABLE ACCESS BY INDEX ROWID回表

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

如何避免TABLE ACCESS BY INDEX ROWID回表
热门搜索
马尔代夫旅游 万和电热水器怎么样 怎么辨别奶粉真假 夹生饭怎么办 可以直接看片的网址 怎么用电脑录音 承德避暑山庄旅游攻略 要我怎么办 石花洞景区 大闸蟹怎么保存才不死