91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle 執行計劃 access和filter的區別

發布時間:2020-06-27 18:33:09 來源:網絡 閱讀:5686 作者:lych528 欄目:關系型數據庫

These two terms in the Predicate Information section indicate when the data source is reduced. Simply, access means only retrieve those records meeting the condition and ignore others. Filter means after you already got the data, go through them all and keep those meeting the condition and throw away the others.

1 access: 直接獲取那些滿足條件的數據,拋棄其他不滿足的數據
2 filter: 你已經有了一些數據,對這些已經有的數據應用filter,得到滿足filter的數據。

很多博客論壇都有如下結論:
access表示這個謂詞條件的值將會影響數據的訪問路徑(表or索引),而filter表示謂詞條件的值并不會影響數據訪問路徑,只起到過濾的作用。

但是這個結論很是含糊,而且容易歧義。很多人一看顯示filter 就認為oracle沒有訪問索引路徑的選擇,肯定走全表掃描進行數據擇取。真的是這樣嗎?

可以模擬如下場景:
create table test(aa int ,bb int ) as select rownum,rownum from dba_objects;(10w數據量)
create index .... 在aa上創建索引
select count(aa) from test where aa<500 ----access,index range scan
select count(aa) from test where aa<50000 ----- filter,index fast full scan
select count(bb) from test where aa<50000 ----filter ,table full scan
select aa,bb from test where aa<500 and bb=5
1 -- filter (bb=5)
2 --access(aa<500)
當然如果bb上建立了索引,那么filter,access的位置可能就會發生變化

明顯access與filter跟是否走索引還是全表掃描無關。
上面access走索引范圍掃描原因在于我只掃描到aa<500的index block我就返回結果了,而走索引快速掃描是對整個index做了掃描,相當于就是對10W條aa值對應的index block都進行掃描。那么這樣區別就很明顯了,filter其實可以認為在數據擇取的過程中可能做了一些無用功,最終拋棄自己不需要的數據來擇取最終需要的數據,而access 在數據擇取方面更有針對性。也就是說access只是更傾向走索引(前提是索引存在而且合理的情況下)。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

腾冲县| 临安市| 彝良县| 林甸县| 无为县| 广州市| 鹤庆县| 五莲县| 齐齐哈尔市| 旺苍县| 双鸭山市| 班玛县| 云安县| 陈巴尔虎旗| 阿巴嘎旗| 南部县| 安岳县| 仁怀市| 澄江县| 漾濞| 沙洋县| 洪湖市| 福泉市| 冀州市| 长岭县| 合肥市| 汉川市| 石首市| 林甸县| 城固县| 循化| 金沙县| 莎车县| 克山县| 射洪县| 辽源市| 天镇县| 徐闻县| 乳源| 万全县| 池州市|