Index Scans 索引掃瞄

2022-08-04 00:21:10 字數 2542 閱讀 1912

官方文件鏈結位址

select department_id, last_name, salary 

from employees

where salary > 5000

order by department_id, last_name;

50,atkinson,2800,rowid

60,austin,4800,rowid

70,baer,10000,rowid

80,abel,11000,rowid

80,ande,6400,rowid

110,austin,7200,rowid..

.

select last_name, salary

from employees;

baida,2900,rowid

zlotkey,10500,rowid

austin,7200,rowid

baer,10000,rowid

atkinson,2800,rowid

austin,4800,rowid..

.

abel,rowid

ande,rowid

atkinson,rowid

austin,rowid

austin,rowid

baer,rowid..

.

select *

from employees

where employee_id = 5;

1,rowid

2,rowid

4,rowid

5,rowid

6,rowid..

.

select * from sh.customers where cust_email = '[email protected]';
f,[email protected],rowid

f,[email protected],rowid

f,[email protected],rowid

f,[email protected],rowid

f,[email protected],rowid

f,[email protected],rowid

m,[email protected],rowid

m,[email protected],rowid

select * from sh.customers where cust_gender = 'f' 

and cust_email = '[email protected]'

union all

select * from sh.customers where cust_gender = 'm'

and cust_email = '[email protected]';

集群因子與索引掃瞄關係密切,因為它可以顯示:

例如,假定雇員表存放在兩個資料塊中。表 3-1 描述了兩個資料塊中的行(省略號表示未顯示的資料)

行按姓氏(以粗體顯示)順序儲存在塊中。例如,資料塊 1 的最下面一行描述了 abel, 往上一行描述了 ande,如此等等,按字母順序直到最上面的一行描述了 steven king。資料塊 2 中的最下面行描述了 kochar,往上一行描述了 kumar ,如此等等,按字母順序直到最後一行描述了 zlotkey

假設在姓氏列上存在乙個索引。每個姓氏條目對應於乙個 rowid。從概念上講,索引條目看起來如下所示:

abel,block1row1

ande,block1row2

atkinson,block1row3

austin,block1row4

baer,block1row5..

.

100,block1row50

101,block2row1

102,block1row9

103,block2row19

104,block2row39

105,block1row4..

.

sql> select index_name, clustering_factor

2 from all_indexes

3 where index_name in ('emp_name_ix','emp_emp_id_pk');

index_name clustering_factor

-------------------- -----------------

emp_emp_id_pk 19

emp_name_ix 2

索引掃瞄總是索引掃瞄麼?

問 使用nc掃瞄運算子,有方法知道索引是怎麼掃瞄的麼?這個問題的乙個答案是非聚集索引掃瞄總是掃瞄整個索引。答 是的,總是100 掃瞄運算子總是整個索引 但是有一些特定的情況並不是這樣。在這篇文章裡我想專門講下你總會碰到的乙個特定案例 在你的查詢裡有top,min或者max表示式。我們來看下面2個查詢...

索引查詢和索引掃瞄

索引的訪問方式主要是 索引查詢 索引掃瞄。在執行計畫中為 index seek,適用於查詢少量資料。對應隨機io,能快速的定位一條資料。在執行計畫中為 index scan,適合掃瞄整個索引的資料。類似於全表掃瞄 只掃瞄索引 對應順序io,io效率本身比較高。索引查詢 和 索引掃瞄,單從io效率上來...

全表掃瞄與索引掃瞄

一,全表掃瞄 全表掃瞄是從讀取資料的同時通過where條件中的查詢條件來過濾來篩選出滿足條件的資料執行過程。其掃瞄的的物件是表中的所有資料塊,包括空資料庫,如果表中的資料大量被刪除,那麼就會存在大量的空資料塊,再次狀態下,大量的空資料塊也被掃瞄。在執行全表掃瞄時,按照順序每次將多個資料塊從磁碟讀取到...