您好,登錄后才能下訂單哦!
Oracle 12c中新增通過ROWID BATCHED訪問數據塊的方式,優化原來使用單個rowid進行數據塊訪問方式帶來的資源消耗及對數據塊的掃描次數,即TABLE ACCESS BY INDEX ROWID BATCHED特性。該特性通過隱藏參數“ _optimizer_batch_table_access_by_rowid ”控制,默認值為 true ,即默認開啟。
以下是 SELECT * FROM employees WHERE employee_id > 190;的執行計劃部分內容。
--------------------------------------------------------------------------------
|Id| Operation | Name |Rows|Bytes|Cost(%CPU)|Time|
--------------------------------------------------------------------------------
| 0| SELECT STATEMENT | | | |2(100)| |
| 1| TABLE ACCESS BY INDEX ROWID BATCHED|EMPLOYEES |16|1104|2 (0)|00:00:01|
|*2| INDEX RANGE SCAN |EMP_EMP_ID_PK|16| |1 (0)|00:00:01|
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPLOYEE_ID">190)
以上執行計劃的步驟 2顯示了 hr.employees 表上 emp_emp_id_pk 索引的范圍掃描。 數據庫使用從索引獲取的 rowid 來查找 employees 表中的相應行,然后檢索它們。 步驟 1 中顯示使用從索引中檢索的 rowid進行BATCHED訪問,數據庫將對從索引中檢索的rowid進行排序,然后按塊順序訪問行,從而減少數據庫必須訪問的塊的次數以降低資源的消耗。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。