如何避免TABLE ACCESS BY INDEX ROWID回表

 时间:2024-10-15 13:14:32

如何避免TABLEACCESSBYINDEXROWID回表,下面简单介绍。

工具/原料

plsql

oracle

方法/步骤

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

如何避免TABLE ACCESS BY INDEX ROWID回表

2、新建查询语句。select*f筠续师诈romsys_userainnerjoinsys_user_rolebona.id租涫疼迟=b.user_idinnerjoinsys_roleconb.role_id=c.idwherea.login_name=admin

如何避免TABLE ACCESS BY INDEX ROWID回表

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

如何避免TABLE ACCESS BY INDEX ROWID回表

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

5、改写:selecta.id,c.idfromsys_userainner门钙蹲茌joinsys_user_rol髫潋啜缅ebona.id=b.user_idinnerjoinsys_roleconb.role_id=c.idwherea.id=1;

如何避免TABLE ACCESS BY INDEX ROWID回表

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

如何避免TABLE ACCESS BY INDEX ROWID回表

热门搜索
白兰花图片 明星搞笑图片 中国奇石图片 七夕图片浪漫 宝马x3报价及图片