刪除employee表的索引
DROP INDEX employee.Idx_emp_username
表 'employee'。掃描計數(shù) 1,邏輯讀取 371 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
打開IO信息
SET STATISTICS IO ON
SELECT * FROM employee WHERE employee.emp_username in ('劉10000')
消息:
--添加Idx_emp_username聚集索引
CREATE CLUSTERED INDEX Idx_emp_username ON employee (emp_username);
SELECT * FROM employee WHERE employee.emp_username in ('劉10000');
消息:
表 'employee'。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
使用索引后邏輯讀取3次,沒有使用索引是371次,IN 很好的使用了索引!
下面我們來測試下 LIKE 是否很好的使用索引
刪除索引
DROP INDEX employee.Idx_emp_username
打開IO 信息
SET STATISTICS IO ON
執(zhí)行查詢
SELECT * FROM employee WHERE employee.emp_username like ('劉1000%')
消息:
表 'employee'。掃描計數(shù) 1,邏輯讀取 371 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
添加索引
CREATE CLUSTERED INDEX Idx_emp_username ON employee (emp_username);
SET STATISTICS IO ON
SELECT * FROM employee WHERE employee.emp_username like ( '劉1000%');
表 'employee'。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
網(wǎng)上很多優(yōu)化的文章寫到查詢不要使用 in like left ,其實自己動手測試下看看查詢計劃就一幕了然了 。
本文導(dǎo)航
- 第1頁: 首頁
- 第2頁: 優(yōu)化 Transact-SQL 語句經(jīng)常使用的語句
- 第3頁: 刪除employee表的索引