何時可利用索引
- where引數資料篩選
- SELECT * FROM employee WHERE EmpID = 'xxx' //先替EmpID建立索引,將能提昇查詢速度
- SELECT * FROM employee WHERE Salary BETWEEN 6000 and 7000 //先替Salary 建立索引,將能提昇查詢速度
- Order By
- SELECT name FROM employee ORDER BY name //建立name索引
- GROUP By
- SELECT department,avg(salary) FROM employee GROUP BY department //建立department索引
- 連結資料表
- SELECT * FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID //替Customers資料表根據CustomerID欄位建立索引,並替Orders資料表根據CustomerID建立索引,資料表連結速度會大幅提升
- 先檢查存在根據適當欄位建立的索引,以及確認此索引是否有助於本次的存取作業
- 確實存在有助益的索引,SQL Server即會使用索引表的資料記錄,再繼續步驟2
- 如不存在,即進行「資料表掃描」完成存取作業
- 會從根分頁開始,沿著索引樹狀結構尋找查詢所要的資料
- 將符合查詢條件資料記錄篩選出來
沒有留言:
張貼留言