跳躍式索引掃描(index skip scan) [final]
對於組合索引來說,在oracle8i之前,如果where字句中沒有組合索引的前導列
(即建立索引時排在第一位的欄位)的話,這個組合索引在SQL語句中是不起任何作用的,
在oracle9i中引入了跳躍式掃描,也就是如果在where字句中沒有前導列的話也可以使
用組合索引後面的列進行索引掃描,條件就是前導列的distinct的值不能太多,比如
100萬記錄中,前導列只有 "男","女" 兩個值 。
不過,Oracle承認索引跳躍式掃描沒有直接索引查詢速度快,但可以這樣說,相比於
整個表掃描(full table scan),索引跳躍式掃描的速度要快得多。
例子:
create index sex_emp_id
on emp (sex, emp_id) ;
select emp_name
from emp
where emp_id = 123;
透過執行計劃可以看出,Oracle使用跳躍式索引掃描其實就是將上面的語句劃分
為以下語句執行,相當於使用了sex這個前導列,所以使用上了索引。
select emp_name from emp where sex = 'F' and emp_id = 123
UNION
select emp_name from emp where sex = 'M' and emp_id = 123;
對於高順序鍵(high order key)中的獨特值數目(也就是前導列distinct值太多),
Oracle的索引跳躍式掃描效能將會降低。如果主列(前導列)有50個不同值,根據
上面的SQL執行拆分分析,那麼Oracle要發出50條查詢union才能找回結果 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-683309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 跳躍式索引(Skip Scan Index)的淺析索引Index
- 跳躍式索引(Skip Scan Index)淺析 - 轉索引Index
- 關於Oracle 9i 跳躍式索引掃描(Index Skip Scan)的小測試 (轉)Oracle索引Index
- 【INDEX_SS】使用HINT使SQL用索引跳躍掃描(Index Skip Scan)方式快速獲取資料IndexSQL索引
- (轉)索引掃描還是全表掃描(Index Scan Or Full Table Scan)索引Index
- 轉)索引掃描還是全表掃描(Index Scan Or Full Table Scan)索引Index
- Oracle優化-索引原理[注意索引跳躍式掃描!Oracle優化索引
- 索引優化index skip scan索引優化Index
- 索引唯一性掃描(INDEX UNIQUE SCAN)索引Index
- Index的掃描方式:index full scan/index fast full scanIndexAST
- INDEX SKIP SCANIndex
- 理解index skip scanIndex
- MYSQL 中的GROUP BY 的方式 (1)(loose index scan鬆散掃描 tight index scan緊湊掃描)MySqlIndex
- [轉貼]Skip Scan IndexIndex
- 關於INDEX SKIP SCANIndex
- index range scan,index fast full scan,index skip scan發生的條件IndexAST
- Index Full Scan 與 Index Fast Full Scan (Final)IndexAST
- MySQL8.0之跳躍範圍掃描MySql
- INDEX SKIP SCAN適用場景Index
- mysql下建立索引讓其index全掃描MySql索引Index
- oracle hint_skip scan_index_ssOracleIndex
- 使用索引快速全掃描(Index FFS)避免全表掃描的若干場景索引Index
- 高效的SQL(index skip scan使用條件)SQLIndex
- index skip scan的一些實驗。Index
- 索引全掃描和索引快速全掃描的區別索引
- Oracle中存取資料掃描Table及索引的方式(全表掃描,索引掃描等)Oracle索引
- 【每日一摩斯】-Index Skip Scan Feature (212391.1)Index
- ARP掃描工具arp-scan
- SCAN掃描演算法 java實現演算法Java
- MySQL中的全表掃描和索引樹掃描MySql索引
- 【Oracle】 索引的掃描方式Oracle索引
- 解讀Oracle 索引掃描Oracle索引
- INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCANIndexAST
- 【TUNE_ORACLE】列出走了INDEX SKIP SCAN的SQL參考OracleIndexSQL
- [20180725]index skip-scan operation.txtIndex
- 【oracle】index的幾種掃描方式OracleIndex
- oracle 全表掃描,索引範圍掃描與塊的理解Oracle索引
- 【MySQL】全索引掃描的bugMySql索引