回表:
所謂的回表,就是先查索引,找到相對應的rowid,然后再通過rowid找到對應的數據。
所以,如果select * from XXX一定會出現回表的,畢竟你不可能把所有的列都建索引。
例如:
select * from bp_packing_report where create_date>sysdate-1/24
耗費:3656
改為:
select create_date from bp_packing_report where create_date>sysdate-1/24
就不會出現回表現象了,因為在查詢索引的時候就已經把數據查出來了,不再需要再根據rowid查對應的列內容了。
僅耗費57
區別上面兩個圖,上面比下面多了個 TABLE ACCESS BY INDEX ROWID BATCHED 就是表示根據rowid查相對應的數據