SQL語句在什麼情況下使用全表掃描?

問:SQL語句在什麼情況下使用全表掃描?

答:

1:對返回的行無任何限定條件,即沒有where 字句

2:對數據表與任何索引主列相對應的行限定條件,例如:在City-State-Zip列創建了三列複合索引,那麼僅對State有列限定條件不能使用這個索引,因爲State不是索引的主列。

3:對索引的主列有限定條件,但是條件在表達式裏使用,例如:在City上有索引,但是若使用表達式,如:

where upper(city)='TokYo' 或
City 'X' like 'TOKYO%',

那麼不會使用索引。

4:對索引的主列有限定條件,但是條件或者是Null或者是不相等。例如:在City上有索引,但是若使用表達式,如:

where City is null,where City is
not null,Where city!='TOKYO'.

5: 對索引的主列有限定條件,但是條件使用like操作以及值以‘%’開始或者值是一個賦值變量。例如:

where City like '%YOK%'
where City like: City_bind_Variable xl_rao

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章